Maison >développement back-end >Tutoriel Python >Résultats inattendus dans une division entière : pourquoi 8/-7 = -2 ?

Résultats inattendus dans une division entière : pourquoi 8/-7 = -2 ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 11:55:02763parcourir

Unexpected Results in Integer Division: Why is 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 :

  • 8/(-7) = -2 : Arrondit à la valeur inférieure la plus négative
  • 8/7 = 1 : Arrondit à l'entier inférieur le plus proche

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!

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