System.out.println("30%4 = " + 30%4);
System.out.println("33%4 = " + 33%4);
System.out.println("30*4/100 = " + 30*4/100);
System.out.println("33*4/100 = " + 33*4/100);
我的问题是为什么2在30%4的情况下不是1。任何人都可以详细解释我。在此先感谢
答案 0 :(得分:2)
您必须了解模数的工作原理。 =)当你应用模数时,它会被分割并返回"余数" ...
How Does Modulus Divison Work 已经发布了一个非常好的解释。
答案 1 :(得分:2)
30 % 4 = 2
,因为:
4 + 4 + 4 + 4 + 4 + 4 + 4
是28
所以30 -28 = 2
答案 2 :(得分:0)
在Java中,整数除法返回计算的底限(向下舍入到最接近的整数)。这就是30 * 4/100出现1的原因。
另一方面,模量(%)是整数除法的余数。由于28可被4整除,因此30/4的余数为2(28 + 2 = 30)。
答案 3 :(得分:0)
%运算符是模数,它取两个数字除法后的余数,在你的情况下它除以30乘4,最高倍数是7 7 * 4 = 28现在余数是2,这是你的答案,对于33情况,它做同样的,8 * 4 = 32余数是1