ホームページ >バックエンド開発 >Python チュートリアル >Python の整数の除算が四捨五入ではなく切り捨てられるのはなぜですか?

Python の整数の除算が四捨五入ではなく切り捨てられるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-19 19:07:10454ブラウズ

Why Does Integer Division in Python Truncate Instead of Rounding?

割り算が整数に四捨五入される理由

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。