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

Вниз

Функция 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.036 c
14-84518
Красная майка
2003-06-03 11:21
2003.06.26
Очередная встреча Мастаков в Москве. Запись участников.


14-84690
Dimaz-z
2003-06-03 19:33
2003.06.26
Что по вашему лучше, WinXP или Win2k?


9-83846
Ruslan_
2003-01-13 15:27
2003.06.26
Карта в БД


14-84573
tahion2
2003-06-07 07:28
2003.06.26
Программа для пересылки сообщений и файлов по локальной сети


3-84007
Жук
2003-05-30 16:14
2003.06.26
Select из ХП