Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Gleitkommazahlen zur Anzeige zuverlässig auf zwei Dezimalstellen runden?
Begrenzung von Gleitkommazahlen auf zwei Dezimalstellen
Der Versuch, eine Gleitkommazahl mit Standardmethoden wie Round() auf zwei Dezimalstellen zu runden, kann zu unerwarteten Ergebnissen führen . Dies liegt an den inhärenten Einschränkungen der Gleitkommadarstellung, bei der bestimmte Zahlen nicht exakt dargestellt werden können.
In Binärcomputern werden Gleitkommazahlen als ganze Zahlen geteilt durch eine Zweierpotenz gespeichert. Beispielsweise wird 13,95 ungefähr als 125650429603636838/(2**53) dargestellt. Da Gleitkommatypen eine begrenzte Genauigkeit haben (24 Bit für Gleitkommazahlen und 53 Bit für doppelte Genauigkeit), können diese Werte nicht immer präzise dargestellt werden.
Aus diesem Grund kann das Runden einer Gleitkommazahl mit „round()“ möglicherweise nicht möglich sein ein etwas abweichendes Ergebnis erzeugen. Um die gewünschte Genauigkeit von zwei Dezimalstellen für Anzeigezwecke zu erreichen, können alternative Ansätze gewählt werden:
Beispielsweise runden die folgenden Operationen korrekt a auf zwei Dezimalstellen für die Anzeige:
print("%.2f" % a) # -> 13.95 print("{:.2f}".format(a)) # -> 13.95
Bei Verwendung von „{:.15f}“.format(round(a, 2)) wird aufgrund der Genauigkeitsbeschränkungen von Gleitkommazahlen 13,949999999999999 zurückgegeben. Für Anzeigezwecke ist diese Präzision jedoch nicht erforderlich.
Das obige ist der detaillierte Inhalt vonWie kann ich Gleitkommazahlen zur Anzeige zuverlässig auf zwei Dezimalstellen runden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!