Code: Select all
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>
Ich merke, dass trotz 0,1 keine genaue Gleitkomma-Darstellung, wenn ich sie mit 100000 multipliziere (die eine genaue Gleitkomma-Darstellung aufweist), und die Genauigkeit dessen, wie ich das Ergebnis drucke, erhöht, merke ich keinen Fehler. < /p>
print(' %.22f ' % P) # Result: 10000.0000000000000000000000
< /code>
Dies steht im Gegensatz zu dem Fall, in dem ich die Dezimalmethode verwende, wobei ich den Fehler hinter dem Produkt sehen kann. < /p>
print(Decimal(0.1) * 100000)
< /code>
Wie kommt es auchprint("%.55f" % 0.1) #0.1000000000000000055511151231257827021181583404541015625