Python `decimal`-Modul
Dieser Artikel erklärt das Python-decimal
-Modul.
Sie können die Grundlagen der Berechnungen mit dem decimal
-Modul, den Umgang mit Genauigkeit, Rundung und mehr sowie Codebeispiele kennenlernen.
YouTube Video
Python decimal
-Modul
Das Python-decimal
-Modul bietet festgelegte Dezimalarithmetik, um Fehler zu vermeiden, die bei Gleitkommaberechnungen auftreten. Durch die Verwendung dieses Moduls können zuverlässigere Ergebnisse bei finanziellen Berechnungen oder Berechnungen, die hohe Genauigkeit erfordern, erzielt werden. In Situationen, in denen Fehler des float
-Typs problematisch sind, ist das decimal
-Modul effektiv.
Grundlegende Verwendung des decimal
-Moduls
Beim Verwenden des decimal
-Moduls müssen Sie die Decimal
-Klasse importieren und Werte als Instanzen dieser Klasse behandeln. Als Nächstes demonstrieren wir die grundlegende Verwendung.
1from decimal import Decimal
2
3# Basic usage example of Decimal
4a = Decimal('0.1')
5b = Decimal('0.2')
6result = a + b
7
8print(f"Result: {result}") # Result: 0.3
- Dieser Code addiert 0,1 und 0,2 genau mit der
Decimal
-Klasse. Die gleiche Berechnung mit demfloat
-Typ führt zu fehlerhaften Werten, währendDecimal
diese Fehler vermeidet.
Genauigkeit steuern
Mit dem decimal
-Modul können Sie die Genauigkeit (Anzahl der Dezimalstellen) bei Berechnungen einfach steuern. Mit der Funktion getcontext()
können Sie den aktuellen Kontext abrufen und seine Einstellungen ändern.
1from decimal import Decimal, getcontext
2
3# Set the precision
4getcontext().prec = 4 # Set to 4 decimal places
5
6a = Decimal('1') / Decimal('3')
7print(f"Result with precision 4: {a}") # Result with precision 4: 0.3333
- In diesem Beispiel wird die Genauigkeit auf 4 Stellen für die Berechnung von
1 ÷ 3
festgelegt. MitDecimal
können Sie die Genauigkeit von Berechnungen nach Bedarf festlegen und die Ergebnisse entsprechend anpassen.
Rundung
Das decimal
-Modul bietet mehrere Optionen zur Angabe von Rundungsmethoden. Die folgenden Beispiele zeigen die Verwendung verschiedener Rundungsoptionen wie ROUND_UP
und ROUND_DOWN
.
1from decimal import Decimal, ROUND_UP, ROUND_DOWN
2
3# Example of rounding a number
4a = Decimal('1.2345')
5
6# Rounding up
7rounded_up = a.quantize(Decimal('0.01'), rounding=ROUND_UP)
8print(f"Rounded Up: {rounded_up}") # Rounded Up: 1.24
9
10# Rounding down
11rounded_down = a.quantize(Decimal('0.01'), rounding=ROUND_DOWN)
12print(f"Rounded Down: {rounded_down}") # Rounded Down: 1.23
- Hier wird
quantize()
verwendet, um Zahlen auf eine Genauigkeit von 2 Dezimalstellen aufzurunden oder abzurunden. Dies ermöglicht nicht nur das Runden, sondern auch verschiedene andere Rundungsverfahren.
Betriebskontext und Ausnahmen
Das decimal
-Modul kann auch Fehler und Ausnahmen behandeln, die während Operationen auftreten. Benutzerdefinierte Behandlungen können für spezifische Fehler wie Division durch Null oder Überlauf definiert werden.
1from decimal import Decimal, getcontext, DivisionByZero
2
3# Exception handling
4getcontext().traps[DivisionByZero] = True
5
6try:
7 result = Decimal('1') / Decimal('0')
8except DivisionByZero:
9 print("Division by zero error caught!")
- In diesem Beispiel wird die Ausnahme
DivisionByZero
abgefangen, wenn eine Division durch Null auftritt. Im Moduldecimal
können Fehler auf diese Weise kontrolliert und angepasst werden.
Zusammenfassung
Das Modul decimal
ist äußerst nützlich bei Finanzberechnungen oder in Situationen, in denen hohe Präzision erforderlich ist, um Gleitkommafehler zu vermeiden. Es unterstützt eine Vielzahl von Anwendungen, von grundlegenden Berechnungen bis hin zu Präzisionsmanagement, Rundung und Ausnahmebehandlung. Überprüfen Sie die folgenden zusammengefassten Punkte und verwenden Sie das Modul decimal
entsprechend Ihren spezifischen Anforderungen.
- Genaue Dezimalarithmetik ist mit der Klasse
Decimal
möglich. - Sie können Präzisions- und Rundungseinstellungen frei anpassen.
- Ausnahmen wie die Division durch Null können verwaltet werden.
Dies ermöglicht es Ihnen, das Modul decimal
zu verwenden, um Fehler in Situationen zu minimieren, die genaue numerische Berechnungen erfordern.
Sie können den obigen Artikel mit Visual Studio Code auf unserem YouTube-Kanal verfolgen. Bitte schauen Sie sich auch den YouTube-Kanal an.