Module Python `decimal`
Cet article explique le module decimal
de Python.
Vous pouvez apprendre les bases des calculs avec le module decimal
, la gestion de la précision, l'arrondi et plus encore, avec des exemples de code.
YouTube Video
Module Python decimal
Le module decimal
de Python fournit une arithmétique décimale à précision fixe pour éviter les erreurs qui se produisent dans les opérations en virgule flottante. En utilisant ce module, des résultats plus fiables peuvent être obtenus dans les calculs financiers ou les calculs nécessitant une grande précision. Dans les situations où les erreurs du type float
posent problème, le module decimal
est efficace.
Utilisation de base du module decimal
Lors de l'utilisation du module decimal
, importez la classe Decimal
et traitez les valeurs en tant qu'instances de cette classe. Ensuite, nous allons démontrer l'utilisation de base.
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
- Ce code additionne précisément 0.1 et 0.2 en utilisant la classe
Decimal
. Effectuer le même calcul avec le typefloat
génère des valeurs avec des erreurs, tandis que leDecimal
évite ces erreurs.
Contrôler la Précision
Le module decimal
vous permet de contrôler facilement la précision (nombre de décimales) dans les calculs. La fonction getcontext()
peut être utilisée pour récupérer le contexte actuel et modifier ses paramètres.
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
- Dans cet exemple, la précision est réglée sur 4 chiffres pour le calcul de
1 ÷ 3
. AvecDecimal
, vous pouvez définir la précision des calculs selon vos besoins, ce qui vous permet d'ajuster les résultats en conséquence.
Arrondi
Le module decimal
inclut plusieurs options pour spécifier les méthodes d'arrondi. Voici des exemples d'utilisation de diverses options d'arrondi telles que ROUND_UP
et 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
- Ici,
quantize()
est utilisé pour arrondir les nombres vers le haut ou le bas à une précision de 2 décimales. Cela permet l'arrondi ainsi que d'autres types de méthodes d'arrondi.
Contexte Opérationnel et Exceptions
Le module decimal
peut également gérer les erreurs et exceptions survenant lors des opérations. Un traitement personnalisé peut être défini pour des erreurs spécifiques, comme la division par zéro ou le dépassement.
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!")
- Dans cet exemple, l'exception
DivisionByZero
est interceptée lorsqu'une division par zéro se produit. Dans le moduledecimal
, les erreurs peuvent être contrôlées et personnalisées de cette manière.
Résumé
Le module decimal
est extrêmement utile dans les calculs financiers ou les situations où une haute précision est requise pour éviter les erreurs d'arrondi flottant. Il prend en charge un large éventail d'applications, allant des calculs de base à la gestion de la précision, l'arrondi et le traitement des exceptions. Passez en revue les points résumés ci-dessous et utilisez le module decimal
en fonction de vos besoins spécifiques.
- Une arithmétique décimale précise est possible avec la classe
Decimal
. - Vous pouvez ajuster librement les paramètres de précision et d'arrondi.
- Des exceptions comme la division par zéro peuvent être gérées.
Cela vous permet d'utiliser le module decimal
pour minimiser les erreurs dans les situations nécessitant des calculs numériques précis.
Vous pouvez suivre l'article ci-dessus avec Visual Studio Code sur notre chaîne YouTube. Veuillez également consulter la chaîne YouTube.