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

Susan Sarandon
Libérer: 2024-10-24 11:55:02
original
643 Les gens l'ont consulté

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!