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 hetfloat
type resulteert in waarden met fouten, terwijlDecimal
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 vanDecimal
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 dedecimal
-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.