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
Decimalklasse. Het uitvoeren van dezelfde berekening met hetfloattype resulteert in waarden met fouten, terwijlDecimaldeze 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 vanDecimalkun 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.