В Python 2.7, repr
of float
возвращает ближайшее десятичное число до 17 цифр; это достаточно точно, чтобы однозначно идентифицировать каждое возможное значение с плавающей точкой IEEE. str
of float
работал аналогично, за исключением того, что он ограничивал результат 12 цифрами; для большинства целей это более разумный результат и изолирует вас от небольших различий между двоичным и десятичным представлением.
Демо Python 2: http://ideone.com/OKJtxv
print str(1.4*1.5)
2.1
print repr(1.4*1.5)
2.0999999999999996
В Python 3.2 появляется str
и repr
возвращает то же самое.
Python 3 demo: http://ideone.com/oAKRsb
print(str(1.4*1.5))
2.0999999999999996
print(repr(1.4*1.5))
2.0999999999999996
Есть ли PEP, который описывает изменение, или какое-либо другое выражение от кого-то ответственного?