round () in Python scheint nicht richtig zu runden

In der Dokumentation für die Runde() - Funktion besagt, dass es eine Zahl ist, und die Positionen, die Vergangenheit der Dezimalstelle zu Runden. So ist es sollte hierzu:

n = 5.59
round(n, 1) # 5.6

Aber in Wirklichkeit, die guten alten floating point unheimliche schleicht sich ein, und Sie erhalten:

5.5999999999999996

Für die Zwecke UI, muss ich Anzeige 5.6. Ich stocherte im Internet und fand einige Dokumentationdass dies abhängig von meiner Implementierung von Python. Leider, dies tritt sowohl auf meinem Windows-dev-Maschine und die einzelnen Linux-server die ich ausprobiert habe. Siehe auch hier.

Kurz von meine eigene Runde Bibliothek, gibt es eine Möglichkeit, um dieses?

InformationsquelleAutor der Frage swilliams | 2008-09-11

Schreibe einen Kommentar