Maison > développement back-end > Tutoriel Python > Pourquoi la division entière dans Python 2 donne-t-elle des résultats inattendus avec des nombres négatifs ?

Pourquoi la division entière dans Python 2 donne-t-elle des résultats inattendus avec des nombres négatifs ?

Linda Hamilton
Libérer: 2024-10-25 02:50:30
original
280 Les gens l'ont consulté

Why Does Integer Division in Python 2 Give Unexpected Results with Negative Numbers?

Résultats inattendus de la division entière

Dans Python 2, effectuer une division entière avec des nombres négatifs peut donner des résultats surprenants. Par exemple, en divisant 8 par -7, le résultat est -2, bien que le quotient attendu soit d'environ -1,143.

Comprendre la division au sol

Division entière, souvent appelée « division d'étage » dans Python 2, arrondit le résultat à l'entier le plus proche. Ce comportement dicte que même lors de la division d'entiers positifs et négatifs, le résultat est toujours plus négatif.

Exemples d'énigmes

Ce principe d'arrondi conduit à des résultats déroutants, comme illustré par les opérations de division suivantes :

  • 8/(-7) = -2
  • 8/7 = 1

Python 3 Fixes l'Anomalie

Dans Python 3, ce problème est résolu. Pour la même opération, 8/(-7), la sortie est -1,143. Cependant, si le comportement souhaité est une division entière, l'utilisation de l'opérateur "//" répliquera le résultat de Python 2.

Explication technique

Dans Python 2, le le type d'un entier divisé par un autre entier est également un entier. Le résultat est donc arrondi à l’entier inférieur le plus proche. Python 3 introduit la conversion de type automatique, qui permet au résultat d'être représenté sous forme de nombre à virgule flottante, conservant sa valeur réelle.

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