我正在%
和java
中使用python
运算符进行一些计算。
在进行计算时,我发现%
运算符在处理负数时在两种语言中的工作方式有所不同。
例如
-21 % 4 = -1 // Java
-21 % 4 = 3 # Python
所以我查看了stackoverflow上的一些帖子,发现在java
中,%
给出了余数,而在python
中,{{1 }}给出模量。如上例所示,它们对于正数都是相同的,但在负数的情况下会给出不同的结果。
所以我搜索了模量和余数之间的区别,在线阅读了一些帖子,但是余数和模数之间的区别对我来说仍然不清楚
问题
有人可以使用上面的示例简单地解释%
和modulus
之间的区别吗?
答案 0 :(得分:0)
模运算符的实现在Python和Java之类的语言中有所不同。
在Java中,结果具有除数的符号,但在Python中,该符号来自除数。
要在Java中获得Python的结果,您可以使用:
(((((n%m)+ m)%m)
其中n是除数,m是除数。
int a = (((-21% 4) + 4) % 4);
System.out.println(a); //a=3
答案 1 :(得分:0)
与 C 或 C ++ 或 Java 不同,Python的模运算符(%)始终返回与分母符号相同的数字(除数) )。
示例
(-5) % 4 = (-2 × 4 + 3) % 4 = 3.
({See用于确定不同语言的结果符号。)