Вы сталкиваетесь со старой проблемой с числами с плавающей запятой, заключающейся в том, что не все числа могут быть представлены точно. Командная строка просто показывает вам полную форму с плавающей запятой из памяти.
При представлении с плавающей запятой ваша округленная версия будет тем же числом. Поскольку компьютеры являются двоичными, они хранят числа с плавающей запятой как целое число, а затем делят его на степень двойки, так что 13,95 будет представлено аналогично 125650429603636838 / (2 * * 53).
Примечание 1: приведенное выше возвращает строку. Чтобы получить значение с плавающей запятой, просто оберните с помощью float(...):
float("{:.2f}".format(13.949999999999999))
Примечание 2: перенос с помощью float() ничего не меняет:
>>> x = 13.949999999999999999 >>> x 13.95 >>> g = float("{:.2f}".format(x)) >>> g 13.95 >>> x == g True >>> h = round(x, 2) >>> h 13.95 >>> x == h True
Ответ 3
Встроенный round() отлично работает в Python 2.7 или более поздней версии.