Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.08.27;
Скачать: CL | DM;

Вниз

cos(1/2*pi)=-4.3711388287e-08   Найти похожие ветки 

 
Mr tray   (2006-08-04 19:34) [0]

Столкнулся с такой вот вешью. x:=cos(1/2*pi) получаю x=-4.3711388287e-08. на самом деле конинус пи на два равен ноль. по сути x очень мал, и в дальнейших вычинслениях эта погрешность не играет роли. но  x<0 возвращает true, что мне совсем не нравится. как можно избежать этой погрешности или как с ней бороться?


 
Ega23 ©   (2006-08-04 19:48) [1]

Определение, допустим, предела по Коши помнишь?


 
palva ©   (2006-08-04 20:15) [2]

> как можно избежать этой погрешности или как с ней бороться?
Этой погрешности нельзя избежать. Ведь даже аргумент 1/2*pi вы задали с небольшой погрешностью. Чего же вы хотите от функции? И бороться с этим тоже не надо. Нужно принимать мир таким, каков он есть.


 
Mr tray   (2006-08-04 22:25) [3]

Ясно. так и быть. буду принимать сей мир со всеми его приколами


 
RzCoDer ©   (2006-08-04 23:22) [4]

x:=cos(DegToRad(1/2*pi));


 
Don Nikola ©   (2006-08-05 11:39) [5]

2RzCoDer:
Могу ошибаться, но вроде pi уже в радианах.

2MrTray:
Сравнивай с епсилоном или делай округление.


 
Rial ©   (2006-08-05 16:26) [6]

Const
       PracizConst = 1E-16;

function Praciz(Const A, B : Extended) : Boolean;
begin
Result:=Abs(A - B) < PracizConst;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.028 c
2-1154639836
ronyn
2006-08-04 01:17
2006.08.27
Daclare in other units


2-1154608617
Юра
2006-08-03 16:36
2006.08.27
TServerSocket, stNonBlocking несколько клиентов


2-1155109671
vladimirg88
2006-08-09 11:47
2006.08.27
про таймер


4-1146654047
Тфьу
2006-05-03 15:00
2006.08.27
Как отследить процесс перемещения компонента?


15-1154506020
KygECHuK
2006-08-02 12:07
2006.08.27
Что за ошибка ?