Форум сайта python.su
0
Если написать 66.6 или что-то в этом роде, интерпретатор выводит 66.599999999999994. Почему так?
Версия 2.6.6
Офлайн
14
http://asvetlov.blogspot.com/2011/02/blog-post.html
Следующий! :D
Офлайн
0
Большое спасибо. =)
Офлайн
6
питон всегда округляет в меньшую сторону , иначе используй decim
Офлайн
14
sypper-pit, неверный ответ. Это — вообще не округление.
Офлайн
6
Андрей Светлов
счя посмотрю тогда вашу статью
Офлайн
6
те получается это неточность мантисс ? однако человек точно задаёт значение 66.6 и не вычисляет…. так что остаток ему считать не требуется , а что не подходит decim ?
Отредактировано (Апрель 3, 2011 19:16:12)
Офлайн
14
Мантисса имеет конечную длину. В то время как в двоичной системе 6/10 - бесконечная дробь.
decimal.Decimal, конечно, лишен этого недостатка — почему именно его следует использовать в финансовых расчетах.
Но он медленный и вообще — научная математика основана на float, который имеет аппаратную реализацию для всех функций.
Офлайн
6
Андрей Светлов
вот теперь надо точно знать что требуется товарищу idmon :)
Офлайн
14
Как я понял - просто понять, почему str(66.6) == “66.599999999999994”
Офлайн