ホームページ >バックエンド開発 >Python チュートリアル >Python の整数の除算で予期しない丸められた結果が生成されることがあるのはなぜですか?

Python の整数の除算で予期しない丸められた結果が生成されることがあるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-19 00:22:11780ブラウズ

Why Does Integer Division in Python Sometimes Produce Unexpected Rounded Results?

Python の整数除算: 丸められた結果の謎を解明する

Python では、特にオペランドが次の場合、除算演算によって予期しない結果が生じることがあります。は整数です。この動作を理解するには、Python の整数の除算のニュアンスを詳しく掘り下げる必要があります。

2 つの整数を除算すると、結果も整数になります。この動作は、演算が実行される前にオペランドが切り捨てられる、Python 2.x の除算の実装に起因します。次の例を考えてみましょう:

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

ここで、オペランドはそれぞれ 10 と 90 と評価されます。どちらも整数であるため、結果も 0 に切り捨てられます。これは、Python 2.x の除算演算子 (/) の結果が常に整数になるためです。

この問題を解決するには、次のように float 除算を強制できます。オペランドの 1 つを float にキャストします:

>>> (20-10) / float((100-10))
0.1111111111111111

または、除算モジュールを次からインポートできます。 __future__:

>>> from __future__ import division
>>> (10 - 20) / (100 - 10)
-0.1111111111111111

これにより、オペランドの型に関係なく、除算は常に浮動小数点数を返すことが保証されます。これらの微妙な点を理解することで、Python コードでの予期しない丸めエラーを回避できます。

以上がPython の整数の除算で予期しない丸められた結果が生成されることがあるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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