Résultats inattendus dans la division entière
La division entière négative en programmation peut donner des résultats surprenants, comme l'observation selon laquelle 8/-7 produit un valeur entière de -2. Ce résultat découle du concept de division d'étage, où les entiers négatifs sont arrondis à la valeur la plus négative suivante.
Dans Python 2, la division entière applique automatiquement la division d'étage. Par conséquent, lors de l'exécution de 8/-7, Python arrondit le résultat réel de 8,0/(-7,0), qui est d'environ -1,143, à l'entier le plus négatif de -2. Ce comportement d'arrondi explique également pourquoi 8/7 donne 1.
Ce comportement peut prêter à confusion, car il contredit l'attente mathématique d'obtenir un résultat fractionnaire pour une division entière négative. Cependant, il est essentiel de reconnaître que la division entière est une opération distincte qui tronque les parties fractionnaires.
Pour surmonter ce comportement, Python 3 a introduit un changement. Dans Python 3, la division entière d'entiers négatifs produit un résultat à virgule flottante. Si l'opération de division d'origine était 8/(-7), le résultat serait la valeur fractionnaire -1,143.
Si le maintien du comportement de division au sol est souhaité dans Python 3, l'opérateur // peut être utilisé. Cet opérateur effectue explicitement une division d'étage, fournissant les mêmes résultats que l'opérateur de division entière dans Python 2.
Pour plus d'informations, consultez la proposition d'amélioration Python PEP 238, qui traite de la modification de l'opérateur de division en 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!