Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
ВнизФункция cos() в Delphi. Найти похожие ветки
← →
Пит (2003-06-10 13:16) [0]Почему стандартная функция Delphi cos() неправильно работает?
Т.е. неправильно считает следующее:
1. cos(270*pi/180) - получается не ноль, а очень маленькое число (порядка -19 степени);
2. cos(90*pi/180) - получается не ноль:
и подобные углы (через 2*pi).
При других значениях угла считает правильно.
Как это можно исправить?
Спасибо.
← →
Виктор Щербаков (2003-06-10 13:17) [1]Работает правильно.
порядка -19 степени - это уже машинный ноль :)
← →
Юрий Зотов (2003-06-10 13:25) [2]Ответ на этот и другие подобные вопросы Вы найдете здесь:
http://www.delphikingdom.ru/helloworld/reals.htm
← →
HolyGlory (2003-06-10 13:30) [3]Используй IsZero (модуль Math).
← →
Roma (2003-06-10 13:30) [4]> Пит (10.06.03 13:16)
Там косинус считается с помощью разложения в ряд - чистый ноль может получится только при бесконечно большом числе слагаемых... А почему ты решил, что в остальных случаях правильно?... Там тоже наверняка есть отличия в районе 19-го знака после запятой... ;)
Как это можно исправить?
Округлять результат... А вообще сравнение вещественных (иррациональных) чисел правильно делать так: если их разница по модулю меньше определенного "эпсилон" (1E-18, например), тогда считается, что равны...
← →
Пит (2003-06-10 13:56) [5]Спасибо всем. Проверяю IsZero и все работает правильно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.029 c