Java和Python中的整除和求余运算
执行如下的Java语句:
System.out.println("5 / 3 = " + (5 / 3));
System.out.println("5 / -3 = " + (5 / -3));
System.out.println("-5 / 3 = " + (-5 / 3));
System.out.println("-5 / -3 = " + (-5 / -3));
输出结果为:
5 / 3 = 1
5 / -3 = -1
-5 / 3 = -1
-5 / -3 = 1
可以看出,整除把结果的小数部分截掉了。
再执行如下的Java语句:
System.out.println("5 % 3 = " + (5 % 3));
System.out.println("5 % -3 = " + (5 % -3));
System.out.println("-5 % 3 = " + (-5 % 3));
System.out.println("-5 % -3 = " + (-5 % -3));
输出结果为:
5 % 3 = 2
5 % -3 = 2
-5 % 3 = -2
-5 % -3 = -2
这个结果可以通过如下运算得到:
a % b = a - (a / b)
求余的结果总是与被除数保持一致的符号。在上式中,a为被除数。
但在python中,这稍微有些不同。
>>> 5 // 3
1
>>> 5 // -3
-2
>>> -5 // 3
-2
>>> -5 // -3
1
在这里,整除的结果似乎是这样得到的:
a // b = math.floor(float(a) / b);
>>> 5 % 3
2
>>> 5 % -3
-1
>>> -5 % 3
1
>>> -5 % -3
-2
这也是通过如下运算得到的:
a % b = a - (a / b)
求余的结果总是与除数保持一致的符号。在上式中,b为除数。
相关文章