Heim >Backend-Entwicklung >Python-Tutorial >Warum wird die Ganzzahldivision in Python gekürzt statt gerundet?

Warum wird die Ganzzahldivision in Python gekürzt statt gerundet?

Linda Hamilton
Linda HamiltonOriginal
2024-12-19 19:07:10416Durchsuche

Why Does Integer Division in Python Truncate Instead of Rounding?

Warum die Division auf eine ganze Zahl rundet

In Python führt die Division zwischen ganzen Zahlen zu einer ganzen Zahl. Dieses Verhalten kann überraschend sein, insbesondere wenn versucht wird, numerische Bereiche zu normalisieren oder anzupassen.

Um dies zu veranschaulichen, betrachten wir den folgenden Code:

(20-10) / (100-10) == 0

Man könnte erwarten, dass dieser Ausdruck als ausgewertet wird Der Float-Wert stellt 0,111 dar, da die Differenz zwischen 20 und 10 10 und die Differenz zwischen 100 und 10 90 beträgt. Das Ergebnis ist jedoch 0, weil beides Seiten der Division sind ganze Zahlen.

Dieses Verhalten ist auf die ganzzahlige Division von Python zurückzuführen, die das Ergebnis abschneidet, anstatt es zu runden. Da 0,111 kleiner als 0,5 ist, wird auf 0 abgerundet.

Um das erwartete Ergebnis zu erhalten, muss man manuell eine Seite der Division in einen Gleitkommawert umwandeln:

(20-10) / float((100-10))  # == 0.111

Alternativ eins kann das Verhalten von Python 3.x aktivieren, das die Division dazu zwingt, einen Float zurückzugeben, indem der Future importiert wird Modul:

from __future__ import division
(10 - 20) / (100 - 10)  # == -0.111

Das obige ist der detaillierte Inhalt vonWarum wird die Ganzzahldivision in Python gekürzt statt gerundet?. 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