【发布时间】:2020-01-30 20:50:30
【问题描述】:
我正在使用java 和python 中的% 运算符进行一些计算。
在进行计算时,我发现% 运算符在处理负数时在两种语言中的工作方式不同。
例如
-21 % 4 = -1 // Java
-21 % 4 = 3 # Python
所以我查看了 stackoverflow 上的一些帖子,发现在 java 中,% 给出 remainder 而在 python 中,% 给出 modulus。它们对于正数是相同的,但在负数的情况下会给出不同的结果,如上例所示。
所以我搜索了模数和余数之间的区别,在线阅读了一些帖子,但余数和模数之间的区别我仍然不清楚
问题
有人能用上面的例子简单地解释一下modulus和remainder之间的区别吗?
【问题讨论】:
-
Python 的 6 个?我得到 3 个。
-
抱歉,打错了。已编辑。
-
这里的问题是,在 Python 中 % 运算符返回模数,而在 Java 中它返回余数。这些函数对正参数给出相同的值,但是对于负输入,模总是返回正结果,而余数可能给出负结果。
-
模数始终与除数同号,余数与商同号。
-
查看这个答案:mod and remainder