Uzurpator
Июнь 23, 2009 18:06:37
Доброго времени суток!
>>>float(3.9999)
3.9998999999999998
>>>float(3.99999999)
3.9999999900000001
Вопрос: почему функция float() не выводит просто 3.9999 и 3.99999999 соответственно? Может, глюк какой?
Ferroman
Июнь 23, 2009 18:39:22
Стоит почитать основы представлений вещественных чисел в ЭВМ
Простой ответ -
http://forum.vingrad.ru/forum/topic-67371/15.html#
Uzurpator
Июнь 23, 2009 18:47:38
Спасибо. Насколько я понимаю, главная мысль :“Это не ошибка. Проблема вызвана внутренним представлением чисел с плавающей точкой, использующим ограниченное количество двоичных цифр для представления десятичного числа. Некоторые десятичные числа не могут быть точно представлены в двоичном виде. В результате появляются небольшие ошибки округления.” Еще раз спасибо.