Форум: "Начинающим";
Текущий архив: 2006.08.27;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.052 c