除/
因为取模中用到了除,所以先说说除(/)
举例: 5/3 : 结果是1
5/-3: 结果是-1
-5/3: 结果是-1
-5/-3: 结果是1
其实就是按照我们数学中的除法去进行运算的,但有区别的是,我这样直接写5/3,默认的5和3都是整型,按数学上计算应该是1.66666666666....无限下去,但是咱们这里是int型,所以不能保留小数点后面的,所以结果是 1,后面的也是这种情况。
再来一个 (8.5/3)呢?
这个计算结果应该是2.8333333333333335,因为这个8.5就是double类型的了,他允许小数点后面可以有16位
取模(%)运算
取模运算也叫求余运算,就是求一个数除另一个得到的余数,但也是有一点不同的地方
先举例:
例子 结果
① 5%3 2
②5%-3 2
③3%5 3
④3%-5 3
⑤-3%-5 -3
⑥15.2%5 0.2
原理就是a%b=a-a/b*b
第③ 3-3/5*5=3-0*5=3
第④ 3-3/(-5)*(-5)=3-0=3
第⑤ -3-(-3)/(-5)*(-5)=-3
当被除数为小数时,除数为整型,除的时候要转成int型
第⑥15.2-(int)15.2/5*5 也就是15.2-15/5*5=0.2
至于在java中运行为啥出现的是0.1999999999999993可能是精度问题,实在是没找到为啥原因。底层的原理吗?
但是原理就是a%b=a-a/b*b