Ganzzahldivision in Python: Das Geheimnis der gerundeten Ergebnisse lüften
In Python können Divisionsoperationen manchmal zu unerwarteten Ergebnissen führen, insbesondere wenn die Operanden sind ganze Zahlen. Um dieses Verhalten zu verstehen, müssen wir uns mit den Nuancen der Ganzzahldivision von Python befassen.
Wenn zwei Ganzzahlen dividiert werden, ist das Ergebnis ebenfalls eine Ganzzahl. Dieses Verhalten ergibt sich aus der Implementierung der Division in Python 2.x, bei der die Operanden abgeschnitten werden, bevor die Operation ausgeführt wird. Betrachten Sie das Beispiel:
>>> (20-10) / (100-10) 0
Hier ergeben die Operanden 10 bzw. 90. Da es sich bei beiden um Ganzzahlen handelt, wird das Ergebnis ebenfalls auf 0 gekürzt. Dies liegt daran, dass der Divisionsoperator (/) in Python 2.x immer eine Ganzzahl ergibt.
Um dieses Problem zu beheben, kann man eine Float-Division durch erzwingen Einen der Operanden in einen Float umwandeln:
>>> (20-10) / float((100-10)) 0.1111111111111111
Alternativ können Sie das Divisionsmodul aus importieren __future__:
>>> from __future__ import division >>> (10 - 20) / (100 - 10) -0.1111111111111111
Dadurch wird sichergestellt, dass die Division immer einen Float zurückgibt, unabhängig von den Operandentypen. Wenn Sie diese Feinheiten verstehen, können Sie unerwartete Rundungsfehler in Ihrem Python-Code vermeiden.
Das obige ist der detaillierte Inhalt vonWarum führt die Ganzzahldivision in Python manchmal zu unerwarteten gerundeten Ergebnissen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!