Pythonでの次の整数計算について混乱しています:
-7/3 = -3
以来(-3)*3 = -9 < -7
。理解します。
7/-3 = -3
これがどのように定義されているかわかりません。(-3)*(-3) = 9 > 7
. 私の意見では、-2 である必要があります(-3)*(-2) = 6 < 7
。
これはどのように作動しますか?
Pythonでの次の整数計算について混乱しています:
-7/3 = -3
以来(-3)*3 = -9 < -7
。理解します。
7/-3 = -3
これがどのように定義されているかわかりません。(-3)*(-3) = 9 > 7
. 私の意見では、-2 である必要があります(-3)*(-2) = 6 < 7
。
これはどのように作動しますか?
ドキュメントから:
(プレーンまたはロング) 整数除算の場合、結果は整数になります。結果は常に負の無限大に向かって丸められます: 1/2 は 0、(-1)/2 は -1、1/(-2) は -1、(-1)/(-2) は 0 です。
への丸め-inf
は、あなたが見ている行動を説明しています。
aix と robert からの回答を拡張します。
これを考える最良の方法は、浮動小数点の結果を (マイナスの無限大に向かって) 切り捨てることです。
-7/3 = floor(-2.33) = -3
7/-3 = floor(-2.33) = -3