@Kolya_RT

Как округлить число на python до сотых?

Пытался сделать так:
balance = round(valuec, 2)
Округлялось, но только до десятых. Помогите, пожалуйста, чтобы округлялось до сотых
  • Вопрос задан
  • 2132 просмотра
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Напомню на всякий случай, что не каждое десятичное число можно представить конечным количеством двоичных знаков. Это как 1\3 в троичной системе будет просто 0.1, а в десятичной 0.333(3).
Это значит, что округлять с помощью round не всегда хорошая идея.
К примеру, десятичное число 0.2 предствляется периодической бинарной дробью.
Смотрите:
In [1]: f'{0.2:.30f}'                                                          
Out[1]: '0.200000000000000011102230246252'

Если вам нужна точная арифметика с десятичными числами с правильным округлением, то используйте модуль decimal, где есть специальный тип данных, контроллирующий точность.
В простых же случаях можно округлять до нужного числа знаков при преобразовании в текст, как показано выше. Однако при этом на способ округления (а там все не так просто, как некоторые думают) воздействовать нельзя. Если нужно совсем правильное округление - decimal.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы