Maison >développement back-end >Tutoriel Python >Pourquoi la division entière en Python tronque-t-elle au lieu d'arrondir ?
Pourquoi la division est arrondie à un entier
En Python, la division entre entiers donne un entier. Ce comportement peut être surprenant, surtout lorsque l'on tente de normaliser ou d'ajuster des plages numériques.
Pour illustrer cela, considérons le code suivant :
(20-10) / (100-10) == 0
On pourrait s'attendre à ce que cette expression soit évaluée comme un valeur flottante représentant 0,111, puisque la différence entre 20 et 10 est 10 et la différence entre 100 et 10 est 90. Cependant, le résultat est 0 car les deux les côtés de la division sont des entiers.
Ce comportement est dû à la division entière de Python, qui tronque le résultat plutôt que de l'arrondir. Puisque 0,111 est inférieur à 0,5, il est arrondi à 0.
Pour obtenir le résultat attendu, il faut convertir manuellement chaque côté de la division en flottant :
(20-10) / float((100-10)) # == 0.111
Alternativement, un peut activer le comportement de Python 3.x, qui force la division à renvoyer un flottant, en important le futur module :
from __future__ import division (10 - 20) / (100 - 10) # == -0.111
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!