Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich Gleitkommazahlen in Python genau auf zwei Dezimalstellen beschränken?

Wie kann ich Gleitkommazahlen in Python genau auf zwei Dezimalstellen beschränken?

DDD
Freigeben: 2024-12-19 03:17:23
Original
446 Leute haben es durchsucht

How Can I Precisely Limit Floating-Point Numbers to Two Decimal Places in Python?

Begrenzung von Gleitkommazahlen auf zwei Dezimalstellen: Gleitkomma-Ungenauigkeit und alternative Lösungen

Diskrepanzen zwischen erwarteten und angezeigten Gleitkommawerten sind eine häufiges Problem, mit dem Entwickler konfrontiert sind. In Python zielt der bereitgestellte Code darauf ab, den Wert von „a“ auf 13,95 zu runden, führt jedoch aufgrund der Einschränkungen der Gleitkommadarstellung zu einem etwas anderen Ergebnis.

Gleitkommazahlen werden zur Darstellung reeller Zahlen in verwendet ein binäres Computersystem. Allerdings können nicht alle Zahlen mit voller Genauigkeit dargestellt werden, was zu Rundungsfehlern führt. Im Fall von „a“ ist der gerundete Wert derselbe wie der ursprüngliche Wert, da der Computer ihn als binären Bruch speichert, der 13,95 nicht genau darstellen kann.

Pythons Gleitkommatyp mit doppelter Genauigkeit verwendet 53 Bits von Präzision, während normale Floats 24 Bit haben. Dies bedeutet, dass die Genauigkeit von Gleitkommazahlen auf 16 Dezimalstellen für doppelte Genauigkeit und 8 Dezimalstellen für reguläre Gleitkommazahlen begrenzt ist.

Um dieses Problem zu lösen, können mehrere Ansätze in Betracht gezogen werden:

Anzeigeformatierung

Um „a“ mit nur zwei Dezimalstellen anzuzeigen, verwenden Sie Zeichenfolgenformatierungstechniken wie z als:

print("%.2f" % a)  # Output: 13.95
print("{:.2f}".format(a))  # Output: 13.95
Nach dem Login kopieren

Dezimaltyp

Wenn genaue Präzision erforderlich ist, sollten Sie die Verwendung des Dezimaltyps aus dem Dezimalmodul in Betracht ziehen:

import decimal
decimal.Decimal('13.95')  # Output: Decimal('13.95')
Nach dem Login kopieren

Ganzzahldarstellung

Für Währungswerte, bei denen eine Genauigkeit von nur bis zu zwei erforderlich ist Dezimalstellen, verwenden Sie ganze Zahlen, um Werte in Cent zu speichern, und teilen Sie sie durch 100, um sie in Dollar umzurechnen:

value_in_cents = 1395  # Store value as an integer
value_in_dollars = value_in_cents / 100  # Output: 13.95
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Gleitkommazahlen in Python genau auf zwei Dezimalstellen beschränken?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage