Java中 % 与Math.floorMod() 区别详解

网友投稿 468 2022-11-26


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

(%在不OSZHfWz同语言中有不同的意义,比如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%y

Math.floorMod(x,y)

-

+

-

+

+

-

+

-

-

-

-

-

+

+

+

+

补充知识:java.lang.Math

了解和记录一下math类的各种方法,以便以后查找

math.sin:求出sin值

math.cos:求出cos值

math.tan:求出tan值

sin=cos*tan

math.asin:根据sin值求角度

math.acos:根据cos值求角度

math.atan:根据tan值求角度

math.toRadians:根据角度求弧度

math.toDegree:根据弧度求角度

math.exp:E的X幂

math.log:以E为底的对数

math.log10:以10为底的对数

math.sqrt:x的二次方根

math.cbrt:x的三次方根

math.IEEEremainder:根据规定的两个参数计算剩余操作

*根据ieee 754标准。

math.ceil:返回最近的且大于的整数

math.floor:返回最近的且小于的整数

math.rint:返回最接近的整数,如果刚好居中,则取偶数

math.atan2:结果angel是一个弧度值,也可以表示相对直角三角形对角的角,其中 x 是临边边长,而 y 是对边边长,计算两点间连线的夹角.(3,3)和(5,5)和原点构成的线的夹角,math.atan2(3-5,3-5),计算出来是弧度值,再转成角度即可。

math.pow:x的y次幂

math.round:跟四舍五入很像,但是不是。小数点后等于5,取整数,正数,整数+1,负数,整数不变,大于5,整数部分+1,正负号不变,小于5,取整数

math.random:随机返回0-1之间的无符号double值

math.addExact:求int和long的和值,超过范围则抛异常

math.substractExact:求int和Long的差值,超出范围则抛异常

math.multiplyExact:求int和long的乘值,超出范围则抛异常

math.incrementExact:求int和long的+1值,超出范围则抛异常

math.decrementExact:求int和Long的-1值,超出范围则抛异常

math.negateExact:求int和long的取反值,超出范围则抛异常

math.toIntExact:求Long的int值,超出范围则抛异常

math.floorDiv:第一个参数除以第二参数,然后针对结果执行floor操作,返回小于或等于商的整数

math.floorMod: return x-floorDiv(x,y)*y;

math.abs:取绝对值

math.max:取最大值

math.min:取最小值

math.sinh:双曲正弦函数sinh(x)=(exp(x)-exp(-x))/2.0

math.cosh:双曲余弦函数cosh(x)=(exp(x)+exp(-x))/2.0

math.tanh:tanh(x)=sinh(x)/cosh(x)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringBoot项目整合jasypt实现过程详解
下一篇:java8 Math新增方法介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~