Comment utiliser le module décimal dans Python

Comment utiliser le module décimal dans Python
Cet article couvrira un guide sur l'utilisation du module «décimal» dans Python. Il peut être utilisé pour exécuter diverses opérations mathématiques sur les nombres de points flottants ou les nombres contenant des décimales. Tous les échantillons de code de cet article sont testés avec Python 3.9.5 sur Ubuntu 21.04.

À propos du module décimal

Le module décimal, comme son nom l'indique, peut être utilisé pour gérer les nombres ayant des points décimaux ou des numéros de type flottant. Les méthodes incluses dans ce module aident à arrondir les nombres décimaux, à convertir les nombres et à effectuer des calculs arithmétiques. Il se concentre également beaucoup sur la précision et la précision et chaque nombre après un point décimal est considéré comme significatif. Le module décimal considère un nombre comme 1.40 comme 1.40 et pas comme 1.4. L'utilisation du module décimal peut être mieux comprise à travers des exemples. Certains d'entre eux sont expliqués ci-dessous.

Effectuer des calculs mathématiques de base à l'aide du module décimal

Vous pouvez appeler le constructeur décimal pour convertir un numéro en un type décimal dans Python. L'exemple de code ci-dessous montre la différence entre la division mathématique de base effectuée sur les nombres de type entier et les numéros de type décimal.

à partir de décimales décimales
a = 10
b = 11
c = a / b
d = décimal (a) / décimal (b)
Imprimer (C, type (C))
imprimer (d, type (d))

La première instruction importe la classe décimale du module décimal. Ensuite, deux variables «A» et «B» sont créées avec certaines valeurs. La variable «C» stocke une valeur produite en divisant la variable A par b. Le même processus est ensuite répété en convertissant les nombres en objets de type décimal. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

0.9090909090909091
0.9090909090909090909090909091

Comme vous pouvez le voir dans la sortie ci-dessus, l'objet de type flotteur montre des nombres avec moins de précision que l'objet de type décimal car il utilise une méthode d'approximation beaucoup plus agressive que l'objet de type décimal. Par défaut, un numéro de type décimal dans Python apparaît jusqu'à 28 nombres. Vous pouvez modifier cette valeur en fonction de votre besoin en appelant la méthode «getContext» disponible dans le module décimal.

à partir de décimales décimales
à partir de la décimale Import GetContext
getContext ().Prec = 50
a = 10
b = 11
c = a / b
d = décimal (a) / décimal (b)
Imprimer (C, type (C))
imprimer (d, type (d))

Dans l'échantillon de code ci-dessus, la fonction GetContext a été importée et la position de précision a été définie jusqu'à 50 positions. La méthode GetContext peut être utilisée pour afficher le contexte actuel du thread et modifier certains des paramètres de configuration par défaut pour le module décimal. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

0.9090909090909091
0.90909090909090909090909090909090909090909090909091

Vous pouvez effectuer n'importe quel type de calculs arithmétiques avec des objets de type décimal que vous pouvez effectuer avec des objets de type flotteur en python. Le grand nombre de nombres décimaux traînants dans les objets de type décimal peuvent apporter des nombres précis qui sont particulièrement utiles dans les applications scientifiques financières, comptables, critiques de mission, etc.

Notez que vous pouvez créer des numéros de type décimal à partir de flotteurs, de nombres entiers et de chaînes contenant des numéros en appelant le constructeur décimal principal.

Arrondir les nombres en utilisant le module décimal

Le module décimal est livré avec des modes d'arrondi prédéfinis que vous pouvez utiliser pour compléter les nombres avec des points décimaux. Ces modes sont appelés Round_floor, Round_ceiling, Round_half_down, Round_Half_up, Round_up, Round_down, Round_half_even et Round_05up. Selon la documentation officielle Python, voici ce que chacun de ces modes fait:

  • Round_floor: le nombre est arrondi vers l'infini négatif.
  • Round_ceiling: le numéro est arrondi vers l'infini ou l'infini positif.
  • Round_half_down: les numéros sont arrondis au numéro le plus proche. S'il y a un lien, le nombre est arrondi vers zéro. Les liens sont des nombres équidistants qui peuvent être arrondis à la fois vers le haut ou vers le bas. Par exemple un nombre comme 4.25 peut être arrondi vers les deux.2 et 4.3.
  • Rond_half_up: les numéros sont arrondis au numéro le plus proche. S'il y a une cravate, le nombre est arrondi de zéro.
  • Round_up: le numéro est arrondi de zéro.
  • Round_down: le numéro est arrondi vers zéro.
  • Rond_half_even: les numéros sont arrondis au numéro le plus proche. Tous les liens sont arrondis à l'entier même le plus proche.
  • Round_05up: les numéros sont arrondis de zéro si le dernier numéro est 0 ou 5. Sinon, alors les nombres sont arrondis vers zéro.

L'exemple de code ci-dessous montre le comportement de ces modes.

Importer une décimale
à partir de décimales décimales
à partir de la décimale Import GetContext
getContext ().pré = 2
getContext ().Arrondi = décimal.Rond_floor
Imprimer (décimal (3.961) + décimal (0))
getContext ().Arrondi = décimal.Rond_ceiling
Imprimer (décimal (3.961) + décimal (0))
getContext ().Arrondi = décimal.Rond_half_down
Imprimer (décimal (3.705) + décimal (0))
getContext ().Arrondi = décimal.Rond_half_up
Imprimer (décimal (3.775) + décimal (0))
getContext ().Arrondi = décimal.Rond_up
Imprimer (décimal (3.775) + décimal (0))
getContext ().Arrondi = décimal.ARRONDIR VERS LE BAS
Imprimer (décimal (3.609) + décimal (0))
getContext ().Arrondi = décimal.Rond_half_even
Imprimer (décimal (3.665) + décimal (0))
getContext ().Arrondi = décimal.Rond_05up
Imprimer (décimal (3.675) + décimal (0))

L'échantillon de code est assez simple. Une précision de 2 chiffres est réglée pour arrondir les chiffres. La méthode d'arrondi est modifiée en définissant la valeur de l'objet «arrondi» (partie du contexte principal). Après avoir exécuté l'échantillon de code ci-dessus, vous devez obtenir la sortie suivante où chaque ligne correspond au mode d'arrondi respectif:

3.9
4.0
3.7
3.8
3.8
3.6
3.7
3.6

Arrondir en utilisant la méthode de quantification

Vous pouvez également utiliser la méthode «Quantifier» disponible dans le module décimal pour compléter les nombres. Le processus est identique à la méthode expliquée ci-dessus. Cependant, au lieu de définir des numéros de précision séparément, vous pouvez fournir un exposant en tant qu'argument à la méthode Quantize pour arrondir un nombre à une position particulière. Ci-dessous est un exemple de code.

Importer une décimale
à partir de décimales décimales
Arrondi = décimal (3.961).quantifier (décimal ('1.0 '), arrondi = décimal.Round_floor)
Imprimer (arrondi)

Un exposant de '1.0 'a été fourni à la méthode de quantification et une méthode d'arrondi a été fournie comme un argument supplémentaire. Il renverra un nombre en x.Format x. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

3.9

Comparaison de deux chiffres décimaux

Vous pouvez comparer deux objets de type décimal en utilisant la méthode «comparer» disponible dans le module décimal. Les exemples ci-dessous montrent son utilisation.

à partir de décimales décimales
Imprimer (décimal (1.2).Comparez (décimal (1.1)))
Imprimer (décimal (1.0).Comparez (décimal (1.1)))
Imprimer (décimal (1.0).Comparez (décimal (1.0)))

Vous pouvez appeler la méthode de comparaison sur un objet de type décimal et fournir l'autre numéro comme argument. Une valeur de 0, 1 ou -1 sera retournée en fonction des nombres comparés. Une valeur de 0 indique que les deux nombres sont égaux, une valeur de 1 indique que le premier nombre est supérieur au deuxième nombre, et une valeur de -1 indique que le premier nombre est inférieur au deuxième nombre. Après avoir exécuté l'échantillon de code ci-dessus, vous devriez obtenir la sortie suivante:

1
-1
0

Conclusion

Bien que le module décimal soit le plus souvent utilisé pour contrôler la précision décimale et pour compléter les nombres après le point décimal, il est livré avec d'autres méthodes utiles qui peuvent être utilisées pour manipuler des nombres décimaux pour produire des résultats précis à partir de calculs arithmétiques. L'utilisation de base du module décimal a été couverte dans cet article et cela devrait être suffisant pour la plupart des situations. Mais vous pouvez toujours en savoir plus sur les méthodes avancées de la documentation officielle Python.