Python `decimal` Module

Python `decimal` Module

Dit artikel legt het Python decimal module uit.

Je kunt de basis van berekeningen met het decimal module leren, inclusief het beheren van precisie, afronden en meer, samen met codevoorbeelden.

YouTube Video

Python decimal Module

Het Python decimal module biedt een vaste-precisie decimale rekenkunde om fouten te voorkomen die optreden bij bewerkingen met drijvende komma's. Door dit module te gebruiken kunnen betrouwbaardere resultaten worden verkregen bij financiële berekeningen of berekeningen die hoge nauwkeurigheid vereisen. In situaties waar fouten van het float type een probleem vormen, is het decimal module effectief.

Basisgebruik van het decimal Module

Bij het gebruik van het decimal module importeer je de Decimal klasse en behandel je waarden als instanties van deze klasse. Vervolgens demonstreren we het basisgebruik.

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
  • Deze code voegt 0.1 en 0.2 nauwkeurig samen met behulp van de Decimal klasse. Het uitvoeren van dezelfde berekening met het float type resulteert in waarden met fouten, terwijl Decimal deze fouten voorkomt.

Beheersen van Precisie

Het decimal module stelt je in staat om eenvoudig de precisie (aantal decimalen) in berekeningen te beheren. De getcontext() functie kan worden gebruikt om de huidige context op te halen en de instellingen aan te passen.

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 dit voorbeeld is de precisie ingesteld op 4 cijfers voor de berekening van 1 ÷ 3. Met behulp van Decimal kun je de precisie van berekeningen instellen zoals nodig, zodat je resultaten dienovereenkomstig kunt aanpassen.

Afronden

Het decimal module bevat verschillende opties voor het specificeren van afrondmethoden. De volgende voorbeelden tonen het gebruik van diverse afrondopties zoals ROUND_UP en 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 wordt quantize() gebruikt om getallen naar boven en beneden af te ronden tot een precisie van 2 decimalen. Dit maakt afronden en verschillende andere soorten afrondmethoden mogelijk.

Operationele Context en Uitzonderingen

Het decimal module kan ook fouten en uitzonderingen afhandelen die optreden tijdens operaties. Aangepaste verwerking kan worden gedefinieerd voor specifieke fouten, zoals delen door nul of overloop.

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 dit voorbeeld wordt de DivisionByZero-uitzondering opgevangen wanneer een deling door nul plaatsvindt. In de decimal-module kunnen fouten op deze manier worden gecontroleerd en aangepast.

Samenvatting

De decimal-module is uiterst nuttig bij financiële berekeningen of situaties waarin hoge precisie vereist is om fouten in zwevendekommagetallen te voorkomen. Het ondersteunt een breed scala aan toepassingen, van basisberekeningen tot precisiebeheer, afronding en het afhandelen van uitzonderingen. Bekijk de onderstaande samenvattende punten en gebruik de decimal-module volgens uw specifieke behoeften.

  • Nauwkeurige decimale rekenkunde is mogelijk met de Decimal-klasse.
  • U kunt precisie- en afrondingsinstellingen vrij aanpassen.
  • Uitzonderingen zoals delen door nul kunnen worden beheerd.

Hierdoor kunt u de decimal-module gebruiken om fouten te minimaliseren in situaties die nauwkeurige numerieke berekeningen vereisen.

Je kunt het bovenstaande artikel volgen met Visual Studio Code op ons YouTube-kanaal. Bekijk ook het YouTube-kanaal.

YouTube Video