В документации для функции round() указано, что вы передаете ей число, а позиции за десятичным знаком округлены. Таким образом, должны сделать это:round() в Python, похоже, не округляется должным образом
n = 5.59
round(n, 1) # 5.6
Но, в действительности, хорошие старые плавающей точкой странность закрадывается и вы получите:
5.5999999999999996
Для целей UI, мне нужно, чтобы отобразить 5.6
. Я ткнул по Интернету и нашел documentation, что это зависит от моей реализации Python. К сожалению, это происходит как на моей Windows-машине, так и на каждом Linux-сервере, который я пробовал. See here also.
Не удалось создать мою собственную круглую библиотеку, есть ли способ обойти это?
Я попытался это с питоном 2.7.11 раундом (5.59), и это дает результат, 5.6 в обоих окнах и 64-разрядной машине linux x86, Cython? (Ссылка на упомянутую ссылку теперь изменена, я думаю) – 2016-04-11 04:16:25
Где он на самом деле не работает правильно: `round (5.55, 1) = 5.5`. – Dmitry 2017-10-20 00:03:37