Найти - Пользователи
Полная версия: почему 66.6 выводится как 66.599999999999994?
Начало » Python для новичков » почему 66.6 выводится как 66.599999999999994?
1 2
idmon
Если написать 66.6 или что-то в этом роде, интерпретатор выводит 66.599999999999994. Почему так?

Версия 2.6.6
Андрей Светлов
http://asvetlov.blogspot.com/2011/02/blog-post.html
Следующий! :D
idmon
Большое спасибо. =)
sypper-pit
питон всегда округляет в меньшую сторону , иначе используй decim
Андрей Светлов
sypper-pit, неверный ответ. Это — вообще не округление.
sypper-pit
Андрей Светлов
счя посмотрю тогда вашу статью
sypper-pit
те получается это неточность мантисс ? однако человек точно задаёт значение 66.6 и не вычисляет…. так что остаток ему считать не требуется , а что не подходит decim ?
Андрей Светлов
Мантисса имеет конечную длину. В то время как в двоичной системе 6/10 - бесконечная дробь.
decimal.Decimal, конечно, лишен этого недостатка — почему именно его следует использовать в финансовых расчетах.
Но он медленный и вообще — научная математика основана на float, который имеет аппаратную реализацию для всех функций.
sypper-pit
Андрей Светлов
вот теперь надо точно знать что требуется товарищу idmon :)
Андрей Светлов
Как я понял - просто понять, почему str(66.6) == “66.599999999999994”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB