ホームページ  >  記事  >  バックエンド開発  >  Python 2 の整数除算で負の数が予期しない結果になるのはなぜですか?

Python 2 の整数除算で負の数が予期しない結果になるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-25 02:50:30273ブラウズ

Why Does Integer Division in Python 2 Give Unexpected Results with Negative Numbers?

整数除算の予期せぬ結果

Python 2 では、負の数で整数除算を実行すると、驚くべき結果が得られることがあります。たとえば、8 を -7 で割ると、期待される商は約 -1.143 であるにもかかわらず、結果は -2 になります。

床の除算について

整数の除算、多くの場合Python 2 では「フロア除算」と呼ばれ、結果を最も近い整数に向かって切り捨てます。この動作は、正と負の整数を除算する場合でも、出力は常に負の値になることを示しています。

難題の例

この切り捨ての原則は、図に示すように、複雑な結果をもたらします。次の除算演算によって:

  • 8/(-7) = -2
  • 8/7 = 1

Python 3 の修正異常

Python 3 では、この問題は解決されています。同じ演算 8/(-7) の場合、出力は -1.143 です。ただし、目的の動作が整数の除算である場合、「//」演算子を使用すると、Python 2 の結果が複製されます。

技術的な説明

Python 2 では、整数を別の整数で割った型も整数です。したがって、結果は最も近い整数に切り捨てられます。 Python 3 では自動型変換が導入されており、結果を実際の値を保持したまま浮動小数点数として表現できるようになります。

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

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