Maison > développement back-end > Tutoriel Python > Pourquoi la division entière en Python produit-elle parfois des résultats arrondis inattendus ?

Pourquoi la division entière en Python produit-elle parfois des résultats arrondis inattendus ?

Linda Hamilton
Libérer: 2024-12-19 00:22:11
original
742 Les gens l'ont consulté

Why Does Integer Division in Python Sometimes Produce Unexpected Rounded Results?

Division entière en Python : percer le mystère des résultats arrondis

En Python, les opérations de division peuvent parfois donner des résultats inattendus, en particulier lorsque les opérandes sont des entiers. Pour comprendre ce comportement, nous devons approfondir les nuances de la division entière de Python.

Lorsque deux entiers sont divisés, le résultat est également un entier. Ce comportement résulte de l'implémentation de la division dans Python 2.x, où les opérandes sont tronqués avant que l'opération ne soit effectuée. Prenons l'exemple :

>>> (20-10) / (100-10)
0
Copier après la connexion

Ici, les opérandes sont respectivement évalués à 10 et 90. Puisque les deux sont des entiers, le résultat est également tronqué à 0. En effet, l'opérateur de division (/) dans Python 2.x donne toujours un entier.

Pour résoudre ce problème, on peut appliquer une division flottante par convertir l'un des opérandes en flottant :

>>> (20-10) / float((100-10))
0.1111111111111111
Copier après la connexion

Vous pouvez également importer le module de division depuis __future__ :

>>> from __future__ import division
>>> (10 - 20) / (100 - 10)
-0.1111111111111111
Copier après la connexion

Cela garantit que la division renvoie toujours un flottant, quels que soient les types d'opérandes. En comprenant ces subtilités, vous pouvez éviter des erreurs d'arrondi inattendues dans votre code Python.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal