Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Gleitkommazahlen zur Anzeige zuverlässig auf zwei Dezimalstellen runden?

Wie kann ich Gleitkommazahlen zur Anzeige zuverlässig auf zwei Dezimalstellen runden?

Barbara Streisand
Freigeben: 2025-01-05 09:00:43
Original
866 Leute haben es durchsucht

How Can I Reliably Round Floats to Two Decimal Places for Display?

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:

  • Verwenden Sie ganze Zahlen, um Geldwerte in Cent zu speichern, und teilen Sie sie durch 100, um Dollar anzuzeigen.
  • Verwenden Sie Festkomma-Zahlenbibliotheken wie Decimal, um eine exakte Darstellung sicherzustellen.

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage