hallo
warum lässt sich float Zahlen nicht genau darstellen? Wenn ich in der interaktiven Modus folgendes eingebe.
>>> 0.9
0.90000000000000002
float Zahlen
Das liegt in der Natur der Sache. Es gibt für 0.9 keine exakte Darstellung im Binärsystem, das Python (wie fast alle Programmiersprachen) benutzt. Siehe http://docs.python.org/tutorial/floatingpoint.html. Nimm 0.9375, dass lässt sich exakt repräsentieren.
Oder nimm Decimal, wenn's genau sein soll:
Oder Fraction:
Dann beschwere dich, dass diese beiden Zahlenarten so umständlich anzugeben sind. Ich würde eigentlich erwarten, dass der Ausdruck 1/3 ein Fraction-Objekt liefert und nicht wieder ein int (oder ab Python 3.x ein float). Aber so ist da nun mal...
Stefan
Oder nimm Decimal, wenn's genau sein soll:
Code: Alles auswählen
import decimal
decimal.Decimal("0.9")
Code: Alles auswählen
import fractions
fractions.Fraction(9, 10)
Stefan