fox_12
@fox_12
Расставляю биты, управляю заряженными частицами

Проблема с Decimal и округлением?

Есть код вида:
def get_all_sum(self, amount):
             amount = float(amount)
             if amount>0.0 and amount<=301.0:
                 res = amount + 30.0
             if amount>301.0 and amount<=1001.0:
                 res = amount + 40.0
             if amount>1001.0 and amount<=3001.0:
                 res = amount + 60.0
             if amount>3001.0:
                 res = amount + amount*0.02
             return float(Decimal(Decimal.from_float(res).quantize(Decimal('0.01'), rounding=ROUND_UP)))

Сумма выдается через rest api. Реализация в этой части абсолютно одинаковая.

...
        my_amount = serializer.validated_data['amount']
        return Response({'amount_all': obj.get_all_sum(my_amount)})


На сервере для 9999.99 он выдает
{"amount_all":10199.9898}

на тесте
{"amount_all":10199.99}

Из-за чего такое может быть?
  • Вопрос задан
  • 320 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deliro
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы