idmon
Апрель 3, 2011 15:29:12
Если написать 66.6 или что-то в этом роде, интерпретатор выводит 66.599999999999994. Почему так?
Версия 2.6.6
Андрей Светлов
Апрель 3, 2011 16:05:31
idmon
Апрель 3, 2011 16:30:24
Большое спасибо. =)
sypper-pit
Апрель 3, 2011 17:28:49
питон всегда округляет в меньшую сторону , иначе используй decim
Андрей Светлов
Апрель 3, 2011 17:32:24
sypper-pit, неверный ответ. Это — вообще не округление.
sypper-pit
Апрель 3, 2011 18:51:27
Андрей Светлов
счя посмотрю тогда вашу статью
sypper-pit
Апрель 3, 2011 19:00:00
те получается это неточность мантисс ? однако человек точно задаёт значение 66.6 и не вычисляет…. так что остаток ему считать не требуется , а что не подходит decim ?
Андрей Светлов
Апрель 3, 2011 19:23:38
Мантисса имеет конечную длину. В то время как в двоичной системе 6/10 - бесконечная дробь.
decimal.Decimal, конечно, лишен этого недостатка — почему именно его следует использовать в финансовых расчетах.
Но он медленный и вообще — научная математика основана на float, который имеет аппаратную реализацию для всех функций.
sypper-pit
Апрель 3, 2011 20:11:29
Андрей Светлов
вот теперь надо точно знать что требуется товарищу idmon :)
Андрей Светлов
Апрель 3, 2011 20:22:26
Как я понял - просто понять, почему str(66.6) == “66.599999999999994”