Re[3]: (double)0.001f = 0.0010000000474974513. Почему???
От: venicum Россия -
Дата: 13.01.10 07:36
Оценка:
Здравствуйте, barn_czn, Вы писали:

_>Но дело ведь не в представлении таких чисел, а преобразовании типов.

_>Создать переменную float f = 0.001f я могу, double d = 0.001 — тоже могу. Какова ж черта d != (double)f ?

Честно, после того когда давненько прочитал стандарты IEEE, меня такое не удивляет.
p.s.
В принципе при сравнении двух дробных чисел нельзя использовать явную проверку на равенство, нужно проверять
является ли модуль разности менее какой-либо точности, определенной для данной задачи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.