Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 3, 2011 15:29:12

idmon
От:
Зарегистрирован: 2011-04-03
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

почему 66.6 выводится как 66.599999999999994?

Если написать 66.6 или что-то в этом роде, интерпретатор выводит 66.599999999999994. Почему так?

Версия 2.6.6



Офлайн

#2 Апрель 3, 2011 16:05:31

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

почему 66.6 выводится как 66.599999999999994?

Офлайн

#3 Апрель 3, 2011 16:30:24

idmon
От:
Зарегистрирован: 2011-04-03
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

почему 66.6 выводится как 66.599999999999994?

Большое спасибо. =)



Офлайн

#4 Апрель 3, 2011 17:28:49

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

почему 66.6 выводится как 66.599999999999994?

питон всегда округляет в меньшую сторону , иначе используй decim

Офлайн

#5 Апрель 3, 2011 17:32:24

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

почему 66.6 выводится как 66.599999999999994?

sypper-pit, неверный ответ. Это — вообще не округление.



Офлайн

#6 Апрель 3, 2011 18:51:27

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

почему 66.6 выводится как 66.599999999999994?

Андрей Светлов
счя посмотрю тогда вашу статью

Офлайн

#7 Апрель 3, 2011 19:00:00

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

почему 66.6 выводится как 66.599999999999994?

те получается это неточность мантисс ? однако человек точно задаёт значение 66.6 и не вычисляет…. так что остаток ему считать не требуется , а что не подходит decim ?

Отредактировано (Апрель 3, 2011 19:16:12)

Офлайн

#8 Апрель 3, 2011 19:23:38

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

почему 66.6 выводится как 66.599999999999994?

Мантисса имеет конечную длину. В то время как в двоичной системе 6/10 - бесконечная дробь.
decimal.Decimal, конечно, лишен этого недостатка — почему именно его следует использовать в финансовых расчетах.
Но он медленный и вообще — научная математика основана на float, который имеет аппаратную реализацию для всех функций.



Офлайн

#9 Апрель 3, 2011 20:11:29

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

почему 66.6 выводится как 66.599999999999994?

Андрей Светлов
вот теперь надо точно знать что требуется товарищу idmon :)

Офлайн

#10 Апрель 3, 2011 20:22:26

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

почему 66.6 выводится как 66.599999999999994?

Как я понял - просто понять, почему str(66.6) == “66.599999999999994”



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version