Python 3.6.4. Десятичное округление ошибки? [Дубликат]

Если вы задаете вопрос, это примерно так: tobeFormattedString = ["a", "b", "c"] Выход = "abc"

String(tobeFormattedString)

3
задан Brownbay 24 March 2014 в 04:03
поделиться

1 ответ

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

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
5
ответ дан paxdiablo 22 August 2018 в 14:04
поделиться
Другие вопросы по тегам:

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