Vergleichen Dezimalzahlen in python

Ich möchte in der Lage sein zu vergleichen, die Dezimalstellen in Python. Im Interesse der Berechnungen mit Geld, kluge Leute mir zu Dezimalzahlen anstelle von floats, also Tat ich es. Jedoch, wenn ich will, um zu überprüfen, dass eine Berechnung erzeugt das erwartete Ergebnis, wie würde ich es angehen?

>>> a = Decimal(1./3.)
>>> a
Decimal('0.333333333333333314829616256247390992939472198486328125')
>>> b = Decimal(2./3.)
>>> b
Decimal('0.66666666666666662965923251249478198587894439697265625')
>>> a == b
False
>>> a == b - a
False
>>> a == b - Decimal(1./3.)
False

so, in diesem Beispiel a = 1/3 und b = 2/3, so offensichtlich b-a = 1/3 = ein, jedoch, dass nicht mit Dezimalzahlen.

Ich denke, ein Weg, es zu tun, ist zu sagen, dass ich erwarte, dass das Ergebnis 1/3, und in python Schreibe ich dies als

Decimal(1./3.).quantize(...)

und dann kann ich vergleichen wie diesem:

(b-a).quantize(...) == Decimal(1./3.).quantize(...)

So, meine Frage ist: gibt es eine bessere Möglichkeit, dies zu tun? Wie würden Sie schreiben tests für Dezimalzahlen?

InformationsquelleAutor Eldamir | 2013-06-26
Schreibe einen Kommentar