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
Linda Hamiltonoriginal
2024-12-19 00:22:11806parcourir

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

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

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

>>> from __future__ import division
>>> (10 - 20) / (100 - 10)
-0.1111111111111111

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!

Déclaration:
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