Aus dem Python-Spickzettel des Floating-Point-Führers :
%Vor%Mit round () ist das Falsche zu tun, denn Floats sind Binärbrüche welche kann Dezimalziffern nicht genau darstellen.
Wenn Sie Berechnungen mit Dezimalziffern durchführen müssen, verwenden Sie den Decimal
-Typ im Modul decimal
.
Wenn Sie eine Zahl wünschen, verwenden Sie die Funktion round()
:
(aber +1 für Michaels Antwort bezüglich des Typs Decimal
.)
Wenn Sie eine Zeichenfolge möchten:
%Vor%Von: Python-Dokumente rund (x [, n]) Geben Sie den Fließkommawert x auf n Nachkommastellen gerundet zurück. Wenn n weggelassen wird, wird standardmäßig Null verwendet. Das Ergebnis ist eine Gleitkommazahl. Werte werden auf das nächste Vielfache von 10 zur Potenz minus n gerundet; Wenn zwei Vielfache gleich sind, wird das Runden von 0 weg gemacht (also zum Beispiel, Runde (0.5) ist 1.0 und Runde (-0.5) ist -1.0).
Hinweis Das Verhalten von round () für Gleitkommazahlen kann überraschend sein: Beispiel: Runde (2.675, 2) ergibt 2.67 anstelle der erwarteten 2.68. Dies ist kein Fehler: Es ist ein Ergebnis der Tatsache, dass die meisten Dezimalbrüche nicht genau als ein Float dargestellt werden können. Weitere Informationen finden Sie unter Gleitkommaarithmetik: Probleme und Einschränkungen.
Sieht nach Runde aus (293.466 .... [, 2]) würde es tun,
Tags und Links python number-formatting