割り算が整数に四捨五入される理由
Python では、整数間の割り算は整数になります。この動作は、特に数値範囲を正規化または調整しようとする場合に、驚くべきものになる可能性があります。
これを説明するために、次のコードを考えてみましょう。
(20-10) / (100-10) == 0
この式は次のように評価されると予想されるかもしれません。 20 と 10 の差は 10、100 と 10 の差は 90 であるため、0.111 を表す浮動小数点値になります。ただし、結果は次のようになります。除算の両辺が整数であるため、0 になります。
この動作は、結果を四捨五入するのではなく切り捨てる Python の整数除算によるものです。 0.111 は 0.5 より小さいため、0 に切り捨てられます。
期待した結果を得るには、除算のどちらかの辺を手動で浮動小数点数に変換する必要があります。
(20-10) / float((100-10)) # == 0.111
あるいは、1 つfuture をインポートすることで、除算で強制的に float を返す Python 3.x の動作を有効にできます。モジュール:
from __future__ import division (10 - 20) / (100 - 10) # == -0.111
以上がPython の整数の除算が四捨五入ではなく切り捨てられるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。