упаковка веб-сервисов с электронным приложением

Если вы добавите одну строчку в свой код:

print (decimal.Decimal(2.775))

, то вы увидите , почему округляется:

2.774999999999999911182158029987476766109466552734375

Значение 2.775, как литерал, сохраняется как double, , который имеет ограниченную точность.

Если вы укажете его как строку, значение будет сохранено больше точно:

>>> import decimal

>>> print (decimal.Decimal(2.775))
2.774999999999999911182158029987476766109466552734375

>>> print (decimal.Decimal('2.775'))
2.775
0
задан sancelot 20 February 2019 в 16:06
поделиться