ホームページ  >  記事  >  バックエンド開発  >  整数の除算での予期せぬ結果: なぜ 8/-7 = -2 なのでしょうか?

整数の除算での予期せぬ結果: なぜ 8/-7 = -2 なのでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 11:55:02642ブラウズ

Unexpected Results in Integer Division: Why is 8/-7 = -2?

整数の除算で驚くべきこと

整数を扱う場合、除算を実行すると予期しない結果が発生する可能性があります。たとえば、両方の数値が整数として扱われる場合、8/-7 は -2 と等しくなります。これは混乱を招く可能性があるので、何が起こっているのかを見てみましょう。

説明

あなたが使用していると思われる Python 2 の整数の除算は、「」として知られる規則に従っています。フロア分割です。」これは、結果が最も近い整数に切り捨てられることを意味します。この場合、-1.143 (8.0/(-7.0) の実際の結果) は -2 に切り捨てられます。

この動作は興味深い結果をもたらします:

  • 8/(-7) = -2: より負の値に切り捨てます
  • 8/7 = 1: 最も近い小さい整数に切り下げます

Python 3 以降

Python 3 では、整数の除算が変更されました。切り捨ての代わりに、浮動小数点の結果が得られます。たとえば、Python 3 の 8/(-7) は -1.143 になります。

それでも整数の除算が必要な場合、Python 3 には「//」演算子が用意されています。これは、Python 2 の整数の除算と同様に動作し、最も近い整数に切り捨てられます。

驚きを「修正」する

整数の除算結果における明らかな驚きは、次のとおりです。 Python 3 にアップグレードすることで「修正」されました。これにより、真の数学演算をよりよく表す浮動小数点の結果が得られます。あるいは、Python 3 で「//」演算子を使用して、Python 2 の整数の除算と同じ動作を実現することもできます。

以上が整数の除算での予期せぬ結果: なぜ 8/-7 = -2 なのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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