Heim  >  Artikel  >  Backend-Entwicklung  >  Unerwartete Ergebnisse bei der Ganzzahldivision: Warum ist 8/-7 = -2?

Unerwartete Ergebnisse bei der Ganzzahldivision: Warum ist 8/-7 = -2?

Susan Sarandon
Susan SarandonOriginal
2024-10-24 11:55:02642Durchsuche

Unexpected Results in Integer Division: Why is 8/-7 = -2?

Überraschungen bei der Ganzzahldivision

Bei der Arbeit mit ganzen Zahlen kann es bei der Division zu einem unerwarteten Ergebnis kommen. Beispielsweise ist 8/-7 gleich -2, wenn beide Zahlen als ganze Zahlen behandelt werden. Das kann verwirrend sein, also lassen Sie uns untersuchen, was passiert.

Erklärung

Die Ganzzahldivision in Python 2, der Version, die Sie offenbar verwenden, folgt einer Konvention namens „ Bodenaufteilung.“ Das bedeutet, dass das Ergebnis auf die nächste ganze Zahl abgerundet wird. In diesem Fall wird -1,143 (das tatsächliche Ergebnis von 8,0/(-7,0)) auf -2 abgerundet.

Dieses Verhalten führt zu interessanten Ergebnissen:

  • 8/(-7) = -2:Rundet auf den negativeren Wert ab
  • 8/7 = 1:Rundet auf die nächstkleinere Ganzzahl ab

Python 3 und darüber hinaus

In Python 3 hat sich die Ganzzahldivision geändert. Anstatt abzurunden, liefert es ein Gleitkomma-Ergebnis. Beispielsweise wäre 8/(-7) in Python 3 -1,143.

Wenn Sie dennoch eine ganzzahlige Division benötigen, bietet Python 3 den Operator „//“. Dies verhält sich ähnlich wie die Ganzzahldivision in Python 2, wobei auf die nächste Ganzzahl abgerundet wird.

Die Überraschung „beheben“

Die offensichtliche Überraschung im Ergebnis der Ganzzahldivision kann sein Durch ein Upgrade auf Python 3 „behoben“. Dies führt zu einem Gleitkomma-Ergebnis, das die wahre mathematische Operation repräsentativer darstellt. Alternativ können Sie den Operator „//“ in Python 3 verwenden, um das gleiche Verhalten wie die Ganzzahldivision in Python 2 zu erreichen.

Das obige ist der detaillierte Inhalt vonUnerwartete Ergebnisse bei der Ganzzahldivision: Warum ist 8/-7 = -2?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn