Python `decimal`-Modul

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 dem float-Typ führt zu fehlerhaften Werten, während Decimal 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. Mit Decimal 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 Modul decimal 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.

YouTube Video