前言:今天写算法题,发现好多常用的数学方法在Java中竟不知道怎么用,还要自己写,感觉很麻烦,所以今天我将Java中Math库中几个常用的方法总结一下。
一、取绝对值:Math.abs();
其可以用与byte,short,int,long类型都可以,适用范围较广泛。
Math,abs(-1)=1;
特殊:Math.abs(Integer.MIN_VALUE)=-2147483648;
原因:从函数的注释中可以看出其对Integer.MIN_VALUE取绝对值的值已超过int类型的最大值,将会原数据返回。
解决办法:将其转成long类型的数据在取绝对值就行。
二、取整:Math.ceil(),Math.flloor(),Math.round();
1、Math.ceil():向上取整,也就是往较大的数取整;
Math.ceil(11.2)=12; Math.ceil(-11.2)=-11;
2、Math.floor():向下取整,也就是往较小的数取整;
Math.flloor(11.2)=11; Math.flloor(-11.2)=-12;
3、Math.round():四舍五入取整;
这个四舍五入不同于数学中的四舍五入,这里的是相当于先加0.5然后再想下取整而得到的结果。
Math.round(11.2)=11; Math.round(11.5)=12;
Math.round(-11.5)=-11 Math.round(-11.6)=-12;
Math.round(-11.2)=-11;
三、开平方:Math.sqrt();
其可以用与byte,short,int,long类型都可以,但是跟数学中一样其中的值不能为负数。
Math.sqrt(9)=3.0; Math.sqrt(11)=3.3166247903554;
四、取次幂:Math.pow(a,b);
其中a和b可以为byte,short,int,long类型都可以,正负值也都行,其在数学中表示为a^b;
Math.pow(2,3)=8.0;
五、Π的值:Math.PI;
它的值就是我们数学所使用的Π的值,其数值精确到了小数点后15位。
六、取最大值:Math.max(a,b);
a和b的数据类型可以为byte,short,int,long,如过它们的数据类型不同的话,较小的数据类型就会自动转换成较大的数据类型。
Math.max(2,3)=3; Math.max(4,3.2)=4.0;
七、取最小值:Math.min(a,b);
a和b的数据类型可以为byte,short,int,long,如过它们的数据类型不同的话,较小的数据类型就会自动转换成较大的数据类型。
Math.min(2,3)=2 Math.min(2,3.2)=2.0;
八、取随机数:Math.random();
其随机数的大小为[0.1);
这个函数可以有很多的变化,
像:可以表示[0,10)之间的随机数:Math.random()*10
表示[0,10]之间的随机整数:Math.ceil(Math.random()*10);