Table des matières
Méthode à utiliser
Exemple
Sortie
Méthode 1 : Utiliser la fonction Decimal() du module décimal
Augmentez la valeur de précision à « 60 » pour une meilleure précision
Méthode 2 : Utiliser la fonction fsum() du module mathématique
Grammaire
Conclusion
Maison développement back-end Tutoriel Python Comment faire des calculs décimaux précis en utilisant Python ?

Comment faire des calculs décimaux précis en utilisant Python ?

Aug 23, 2023 pm 03:53 PM
python précis Calcul décimal

Comment faire des calculs décimaux précis en utilisant Python ?

Dans cet article, nous apprendrons comment effectuer des calculs décimaux précis en Python.

Méthode à utiliser

  • Utilisation de la fonction Decimal() du module décimal

  • Utilisez la fonction fsum() du module mathématique

L'incapacité des nombres à virgule flottante à représenter avec précision tous les nombres décimaux est une lacune bien connue. De plus, même des calculs mathématiques simples peuvent produire des erreurs. Par exemple −

Exemple

Le programme suivant démontre l'incapacité des entiers à virgule flottante à représenter avec précision tous les nombres décimaux -

x = 4.2
y = 3.1
 
# printing the sum of both the variables
print("x + y =", x + y)
 
# checking if the sum is both the variables is equal to 7.3
print((x + y) == 7.3)
Copier après la connexion

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

x + y = 7.300000000000001
False
Copier après la connexion

Ces erreurs sont une "caractéristique" de la norme arithmétique IEEE 754 utilisée par le processeur sous-jacent du système et son unité à virgule flottante. Si vous écrivez du code à l'aide d'instances float, vous ne pouvez de toute façon rien faire pour éviter de telles erreurs, car le type de données float de Python utilise une représentation native pour contenir les données.

L'utilisation du module décimal vous donnera une plus grande précision au prix de certaines performances. Voyons cela ci-dessous.

Méthode 1 : Utiliser la fonction Decimal() du module décimal

Exemple

Le programme suivant montre un exemple d'utilisation de la fonction Decimal() pour des calculs décimaux précis :

# importing Decimal from decimal module
from decimal import Decimal
x = Decimal('4.2')
y = Decimal('3.1')
# printing the sum of both the variables
print("x + y =", x + y)
# checking if the sum is both the variables is equal to 7.3 using by passing the sum to the Decimal Function
print((x + y) == Decimal('7.3'))
Copier après la connexion

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

x + y = 7.3
True
Copier après la connexion

Dans le code ci-dessus, il peut sembler un peu étrange au début que le nombre soit spécifié sous forme de chaîne. Cependant, les objets décimaux fonctionnent exactement comme prévu (toutes les opérations mathématiques courantes prises en charge, etc.). Lorsque vous les imprimez ou les utilisez dans des fonctions de formatage de chaîne, ils ressemblent à des nombres ordinaires.

Le contrôle de plusieurs aspects des calculs, tels que le nombre de chiffres et les méthodes d'arrondi, est une fonctionnalité clé de decimal.

Exemple

Pour cela, créez un contexte local et modifiez ses paramètres.

# importing localcontext from decimal module
from decimal import localcontext
x = Decimal('2.3')
y = Decimal('2.7')
# dividing x by y(returns as a floating-point number)
print(x / y)
with localcontext() as context:
   # rounding the number upto 3 digits i.e, precision 3
   context.prec = 3
   # Dividing x by y with precision set to 3
   print(x / y)
Copier après la connexion

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

0.8518518518518518518518518519
0.852
Copier après la connexion

Augmentez la valeur de précision à « 60 » pour une meilleure précision

Exemple

# importing localcontext from decimal module
import decimal
from decimal import localcontext
x = decimal.Decimal('2.3')
y = decimal.Decimal('2.7')
# dividing x by y(returns as a floating-point number)
print(x / y)
with localcontext() as context:
   # Rounding the number upto 60 digits i.e, precision 60
   context.prec = 60
   # Dividing x by y with precision set to 3
   print(x / y)
Copier après la connexion

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

0.8518518518518518518518518519
0.851851851851851851851851851851851851851851851851851851851852
Copier après la connexion

Méthode 2 : Utiliser la fonction fsum() du module mathématique

Le module décimal implémente la « Spécification arithmétique décimale universelle » d'IBM.

Inutile de dire qu'il existe de nombreuses options de personnalisation qui dépassent le cadre de cet article.

Les débutants en Python peuvent être tentés d'utiliser le module décimal pour résoudre des problèmes de précision avec les types de données à virgule flottante. Mais vous devez également comprendre votre domaine d’application. Le type à virgule flottante ordinaire est généralement plus couramment utilisé pour traiter des problèmes scientifiques ou techniques, de l'infographie ou d'autres éléments de nature scientifique.

Par exemple, peu d'éléments dans le monde réel peuvent être mesurés avec la précision de 17 bits qu'offre la virgule flottante. Par conséquent, même de petites erreurs de calcul n’ont aucun effet. De plus, la virgule flottante native est également nettement plus rapide, ce qui est crucial pour les situations où vous devez exécuter de nombreux calculs.

Exemple

Cependant, vous ne pouvez pas complètement éviter les erreurs. De nombreux algorithmes ont été largement étudiés par les mathématiciens, et certains sont plus efficaces que d’autres dans la gestion des erreurs. De plus, une certaine prudence est de mise car la pratique consistant à soustraire les annulations et à additionner des nombres grands et petits peut avoir des conséquences.

inputList = [1.23e+18, 1, -1.23e+18]

# observe how the 1 disappears here if we perform sum() on the list
print(sum(inputList)) 
Copier après la connexion

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant −

0.0
Copier après la connexion
La fonction

fsum() est utilisée pour trouver la somme entre une plage donnée ou un objet itérable. Cela nécessite d'importer la bibliothèque mathématique. Il est largement utilisé dans les calculs mathématiques.

Grammaire

Ce qui suit est la syntaxe de la fonction.

maths.fsum( iterable )
Copier après la connexion

Les objets itérables peuvent être des plages, des tableaux ou des listes.

Type de retour -

Il renvoie un nombre à virgule flottante.

Exemple

L'exemple suivant peut être utilisé pour une implémentation plus précise dans math.fsum() -

# importing math module 
import math
# input list
inputList = [1.23e+18, 1, -1.23e+18]
# adding the sum of elements of the list using the fsum() function
print(math.fsum(inputList))
Copier après la connexion

Sortie

Une fois exécuté, le programme ci-dessus générera le résultat suivant -

1.0
Copier après la connexion

En revanche, vous devez en réalité étudier et comprendre les caractéristiques de propagation des erreurs d'autres algorithmes.

Néanmoins, les programmes traitant de sujets tels que la finance sont ceux où le module décimal est le plus couramment utilisé. C'est très désagréable lorsque de petites inexactitudes apparaissent dans les calculs de ces systèmes.

Par conséquent, le module décimal permet d'éviter cette situation. Les objets décimaux sont souvent rencontrés lorsque Python interagit avec des bases de données, notamment lors de l'accès à des données financières.

Conclusion

Nous avons appris dans cet article qu'il existe certaines situations dans lesquelles les calculs réguliers échouent, nous avons donc besoin de calculs décimaux corrects. Nous avons appris à effectuer des calculs décimaux précis à l'aide de deux fonctions distinctes, decimal() et fsum(). Nous avons également appris à utiliser la fonction localcontext() pour définir la précision des résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Python vs JavaScript: communauté, bibliothèques et ressources Python vs JavaScript: communauté, bibliothèques et ressources Apr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Le code Visual Studio peut-il être utilisé dans Python Le code Visual Studio peut-il être utilisé dans Python Apr 15, 2025 pm 08:18 PM

VS Code peut être utilisé pour écrire Python et fournit de nombreuses fonctionnalités qui en font un outil idéal pour développer des applications Python. Il permet aux utilisateurs de: installer des extensions Python pour obtenir des fonctions telles que la réalisation du code, la mise en évidence de la syntaxe et le débogage. Utilisez le débogueur pour suivre le code étape par étape, trouver et corriger les erreurs. Intégrez Git pour le contrôle de version. Utilisez des outils de mise en forme de code pour maintenir la cohérence du code. Utilisez l'outil de liaison pour repérer les problèmes potentiels à l'avance.

Comment exécuter des programmes dans Terminal Vscode Comment exécuter des programmes dans Terminal Vscode Apr 15, 2025 pm 06:42 PM

Dans VS Code, vous pouvez exécuter le programme dans le terminal via les étapes suivantes: Préparez le code et ouvrez le terminal intégré pour vous assurer que le répertoire de code est cohérent avec le répertoire de travail du terminal. Sélectionnez la commande Run en fonction du langage de programmation (tel que Python de Python your_file_name.py) pour vérifier s'il s'exécute avec succès et résoudre les erreurs. Utilisez le débogueur pour améliorer l'efficacité du débogage.

L'extension VScode est-elle malveillante? L'extension VScode est-elle malveillante? Apr 15, 2025 pm 07:57 PM

Les extensions de code vs posent des risques malveillants, tels que la cachette de code malveillant, l'exploitation des vulnérabilités et la masturbation comme des extensions légitimes. Les méthodes pour identifier les extensions malveillantes comprennent: la vérification des éditeurs, la lecture des commentaires, la vérification du code et l'installation avec prudence. Les mesures de sécurité comprennent également: la sensibilisation à la sécurité, les bonnes habitudes, les mises à jour régulières et les logiciels antivirus.

Python: automatisation, script et gestion des tâches Python: automatisation, script et gestion des tâches Apr 16, 2025 am 12:14 AM

Python excelle dans l'automatisation, les scripts et la gestion des tâches. 1) Automatisation: La sauvegarde du fichier est réalisée via des bibliothèques standard telles que le système d'exploitation et la fermeture. 2) Écriture de script: utilisez la bibliothèque PSUTIL pour surveiller les ressources système. 3) Gestion des tâches: utilisez la bibliothèque de planification pour planifier les tâches. La facilité d'utilisation de Python et la prise en charge de la bibliothèque riche en font l'outil préféré dans ces domaines.

Peut-on exécuter le code sous Windows 8 Peut-on exécuter le code sous Windows 8 Apr 15, 2025 pm 07:24 PM

VS Code peut fonctionner sur Windows 8, mais l'expérience peut ne pas être excellente. Assurez-vous d'abord que le système a été mis à jour sur le dernier correctif, puis téléchargez le package d'installation VS Code qui correspond à l'architecture du système et l'installez comme invité. Après l'installation, sachez que certaines extensions peuvent être incompatibles avec Windows 8 et doivent rechercher des extensions alternatives ou utiliser de nouveaux systèmes Windows dans une machine virtuelle. Installez les extensions nécessaires pour vérifier si elles fonctionnent correctement. Bien que le code VS soit possible sur Windows 8, il est recommandé de passer à un système Windows plus récent pour une meilleure expérience de développement et une meilleure sécurité.

See all articles