Код: Выделить всё
from decimal import Decimal
a = 0.1 ;
N = 100000 ;
# product calculation
P = N*a
# Print product result with no apparent error
print(' %.22f ' % P)
# Print product result with full Decimal approximation of 0.1
print(Decimal(0.1) * 100000)
< /code>
Я понимаю, что, несмотря на то, что 0.1 не имеет точного представления с плавающей точкой, когда я умножаю его на 100000 (у которого точное представление с плавающей точкой) и повышать точность того, как я печатаю результат, я не замечаю никакой ошибки. < /p>
print(' %.22f ' % P) # Result: 10000.0000000000000000000000
< /code>
Это в отличие от случая, когда я использую десятичный метод, где я вижу ошибку за продуктом. < /p>
print(Decimal(0.1) * 100000)
Подробнее здесь: https://stackoverflow.com/questions/795 ... l0-1100000