Maison >développement back-end >Tutoriel Python >Résultats inattendus dans une division entière : pourquoi 8/-7 = -2 ?
Surprises de divisions entières
Lorsque vous travaillez avec des nombres entiers, vous pouvez rencontrer un résultat inattendu lors de l'exécution d'une division. Par exemple, 8/-7 est égal à -2 lorsque les deux nombres sont traités comme des entiers. Cela peut prêter à confusion, alors explorons ce qui se passe.
Explication
La division entière dans Python 2, la version que vous semblez utiliser, suit une convention connue sous le nom de " division d'étage. Cela signifie que le résultat est arrondi à l’entier inférieur le plus proche. Dans ce cas, -1,143 (le résultat réel de 8,0/(-7,0)) est arrondi à -2.
Ce comportement conduit à des résultats intéressants :
Python 3 et au-delà
Dans Python 3, la division entière a changé. Au lieu d’arrondir, il fournit un résultat à virgule flottante. Par exemple, 8/(-7) dans Python 3 serait -1,143.
Si vous avez toujours besoin d'une division entière, Python 3 propose l'opérateur "//". Cela se comporte de la même manière que la division entière dans Python 2, en arrondissant à l'entier inférieur le plus proche.
"Réparer" la surprise
La surprise apparente dans le résultat de la division entière peut être "corrigé" en effectuant une mise à niveau vers Python 3. Cela entraînera un résultat à virgule flottante, plus représentatif de la véritable opération mathématique. Alternativement, vous pouvez utiliser l'opérateur "//" dans Python 3 pour obtenir le même comportement que la division entière dans Python 2.
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!