Beim Arbeiten mit Gleitkommazahlen ist es wichtig, die Einschränkungen dieses Datentyps zu berücksichtigen. Insbesondere können Gleitkommazahlen bestimmte Werte möglicherweise nicht genau darstellen, was beim Rundungsversuch zu unerwarteten Ergebnissen führt.
Problem: Wenn Sie versuchen, eine Gleitkommazahl auf zwei Dezimalstellen zu runden, kann dies zu unerwarteten Ergebnissen führen stoßen auf das folgende Problem:
>>> a 13.949999999999999 >>> round(a, 2) 13.949999999999999
Das Problem entsteht, weil Gleitkommazahlen Werte als ganze Zahlen dividiert durch eine Zweierpotenz speichern. Diese Darstellung erfasst möglicherweise nicht alle Werte genau. Im Fall von Zahlen mit doppelter Genauigkeit (die vom Gleitkommatyp von Python verwendet werden) haben sie eine Genauigkeit von 53 Bits (16 Ziffern), während reguläre Gleitkommazahlen 24 Bits (8 Ziffern) haben.
Lösung:
Um beim Runden einer Gleitkommazahl nur zwei Dezimalstellen anzuzeigen, gibt es mehrere Optionen verfügbar:
Beispiele:
>>> a = 13.946 >>> print("%.2f" % a) 13.95 >>> print("{:.2f}".format(a)) 13.95
Beachten Sie, dass die direkte Verwendung von „round(a, 2)“ immer noch zu Problemen mit der Gleitkommagenauigkeit führt, jedoch mit der Formatierung Der Wert als String mit %.2f oder {:.2f} ergibt die gewünschte Darstellung mit zwei Dezimalstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich Gleitkommazahlen in Python genau auf zwei Dezimalstellen runden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!