Java中 % 与Math.floorMod() 区别

%为取余(rem),Math.floorMod()为取模(mod)

取余取模有什么区别呢?

对于整型数a,b来说,取模运算或者取余运算的方法都是:

1.求 整数商: c = a/b;

2.计算模或者余数: r = a - c*b.

区别是:

取余运算在计算商值向0方向舍弃小数位

取模运算在计算商值向负无穷方向舍弃小数位

比如a=4,b=-3时,a/b = -1.3333... 

此时,取余c = -1,取模c = -2

(%在不同语言中有不同的意义,比如Java或者c/c++中%为取余,python中%则为取模)


%(取余)运算:

1、结果的符号:结果的符号与被除数的符号相同,例:x%y 中 为 x 的符号 (结果的绝对值与x、y都为正数时相同)

2、x%y 中如果 x < y 则结果为x

3、0%x 结果为 0 

4、x%0 除0错误

Math.floorMod(x,y) (取模):

1、简单记忆:与y符号相同

2、x > y:结果的绝对值与 % 运算相同

3、x < y:①符号相同 结果的绝对值为 y - x ;②符号不同 结果的绝对值与 % 运算相同

符号对照
      x      y         x%yMath.floorMod(x,y)
       -       +             -               +
      +       -             +               -
      -       -             -               -
      +       +             +               +

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值