Форум сайта python.su
python 2.7
Имеем число Decimal с некоторым числом знаков после запятой. Задача округлить в формат денежной единицы в ближнюю часть
from decimal import Decimal, ROUND_HALF_UP print Decimal(Decimal(str(1.1247)).quantize(Decimal('.001'), rounding=ROUND_HALF_UP)) >>>1.125 # правильно при округлении до трех знаков print Decimal(Decimal(str(1.1247)).quantize(Decimal('.01'), rounding=ROUND_HALF_UP)) >>>1.12 # не правильно при округлении до двух знаков. Ожидается 1.13 print Decimal(Decimal(str(1.124)).quantize(Decimal('.01'), rounding=ROUND_HALF_UP)) >>>1.12 # правильно при округлении до двух знаков print Decimal(Decimal(str(1.125)).quantize(Decimal('.01'), rounding=ROUND_HALF_UP)) >>>1.13 # правильно при округлении до двух знаков
Отредактировано VadimK (Апрель 23, 2021 15:47:20)
Офлайн