美文网首页Java那些事
取余还是取模?

取余还是取模?

作者: 程序员必修课 | 来源:发表于2017-12-06 21:54 被阅读5次

取模和取余是两回事!

先上结论:

  • 在JAVA、C、C++里,%是取余运算,英文remainder;
  • 在Python里,%号是取模运算,英文modulus;
  • 取余运算的除法是向零舍入,取模运算的除法是向小值舍入;
  • 取余运算结果的符号与被除数相同,取模运算结果的符号与除数相同;
  • Java中Math.floorMod()函数提供取模运算;
  • 一切运算的终极解释:对所有数值a和所有非零数值b满足:(a / b) * b + (a % b) == a;
  • 对于Java的除法,最好记的办法就是都按正数做除法,然后添加符号即可。
  • 除了boolean类型以外,其他所有基本类型都可以进行取余运算!

先看Java中的除法:

System.out.println(5 / 3);//1
System.out.println(5 / -3);//-1
System.out.println(-5 / 3);//-1
System.out.println(-5 / -3);//1

取余运算:

System.out.println(5 % 3);//2
System.out.println(5 % -3);//2
System.out.println(-5 % 3);//-2
System.out.println(-5 % -3);//-2
System.out.println(5.0 % 3.5);//1.5
System.out.println(5.0 % -3.5);//1.5
System.out.println(-5.0 % 3.5);//-1.5
System.out.println(-5.0 % -3.5);//-1.5

取模运算:

System.out.println(Math.floorMod(5, 3));//2
System.out.println(Math.floorMod(-5, 3));//1
System.out.println(Math.floorMod(5, -3));//-1
System.out.println(Math.floorMod(-5, -3));//-2

Math.floorMod()只支持int和long。

相关文章

  • 取余还是取模?

    取模和取余是两回事! 先上结论: 在JAVA、C、C++里,%是取余运算,英文remainder; 在Python...

  • java 中的除法与取余

    一、取余?取模? 首先区别一下取模运算(Modulo Operation)和取余运算(Complementatio...

  • Swift 关于取余或取模的方法truncatingRemain

    Swift5关于取余或取模的方法truncatingRemainderSwift5 不支持 % 来取模(取余)使用...

  • 取模和取余 居然不一样!!!

    其实取模和取余在目标上是一致的,但是因为语言对取余和取模上定义的不同,导致得到的结果不同。 对取余和取模定义不同的...

  • 取模和取余

    近日在读C++ Primer第五版,在2.1.2类型转换一节中,有这样一个例子: 当看到255这个值,一脸蒙圈,为...

  • 取模和取余

    整数 a 和 bMOD 和 REM 的计算都分两步: c = a / b r = a - (c * b) 不同之处...

  • 取余和取模

    参考链接:https://blog.csdn.net/nishiwodebocai21/article/detai...

  • Python中取模和取余运算实现方法

    取模 Python中可直接用%,计算模,r = a % b 取余

  • 取模与取余运算

    取余运算是让商的绝对值尽可能的小,也就是向0取值。 取模运算是让商尽可能的小,向负无穷取值。 区别:都是取余数,所...

  • javascript运算符

    算术运算符 如 + , - , * , / , % , ++ , -- % 表示取余或取模 ++ 表...

网友评论

    本文标题:取余还是取模?

    本文链接:https://www.haomeiwen.com/subject/xyfrixtx.html