在 C/C++ 、Java 中结果为 -1,在 Python 中结果为 -2。为什么会这样?
说明
我们都知道,在 C/C++ 、Java 中,运算符 /
两边若都为整数,则结果也会是整数。例如:
1 | # C/C++ 、Java |
但在 Python 中,运算符 /
的结果是浮点数,要想得到整数商,需要用到“地板除运算符”://
。
1 | # Python 3.7.0 |
对于异号的整数相除,C/C++、Java 和 Python 的结果也是不一样的:
1 | # C/C++ 、Java |
1 | # Python 3.7.0 |
可以看到,在计算异号相除的整数商时,C/C++、Java 会向 0 方向舍入;而 Python 会向负无穷方向舍入。其实这也是造成它们的运算符 %
结果也不一样的原因。详细请看我的另一文章:运算符 % 是取余还是取模?