Math类主要是一个工具类,它用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数等。它的所有方法都是静态的,可以直接使用类名.方法名调用。
1、π的获取
public static final double E = 2.7182818284590452354;
2、自然常数e
public static final double PI = 3.14159265358979323846;
abs
返回参数值的绝对值。
/**
* Math.abs()
* @param int/long/double/float
*/
System.out.println(Math.abs(5)); //5
System.out.println(Math.abs(-15)); //15
System.out.println(Math.abs(-16.8)); //16.8
sqrt
返回double类型的正确舍入的正平方根。
System.out.println(Math.sqrt(16.0)); //4.0
System.out.println(Math.sqrt(0)); //0.0
System.out.println(Math.sqrt(-0)); //0.0
System.out.println(Math.sqrt(8)); //2.8284271247461903
System.out.println(Math.sqrt(-16.0)); //NaN
注意:
否则,结果是最接近参数值的真数学平方根的double值。
cbrt
返回参数double类型的立方根值。 对于正有限x , cbrt(-x) == -cbrt(x) ; 即负值的立方根是该值的大小的立方根的负数。
System.out.println(Math.cbrt(8.0)); //2.0
System.out.println(Math.cbrt(-8)); //-2.0
System.out.println(Math.cbrt(0)); //0.0
System.out.println(Math.cbrt(-0)); //0.0
pow
返回第一个参数的第二个参数次幂的double类型的值。
System.out.println(Math.pow(2,5)); //32.0
System.out.println(Math.pow(-2,5)); //-32.0
System.out.println(Math.pow(2,0)); //1.0
log
返回double类型的自然对数值(基数e )。
System.out.println(Math.log(16)); //2.772588722239781
System.out.println(Math.log(0)); //-Infinity
System.out.println(Math.log(-0)); //-Infinity
System.out.println(Math.log(-16)); //NaN
log10
返回double类型的对数值(基数10)。
System.out.println(Math.log10(100)); //2.0
System.out.println(Math.log10(-100)); //NaN
System.out.println(Math.log10(0)); //-Infinity
ceil
返回大于或等于参数且为整数的 double类型的值。
System.out.println(Math.ceil(9.6)); //10.0
System.out.println(Math.ceil(9.3)); //10.0
System.out.println(Math.ceil(0)); //0.0
System.out.println(Math.ceil(-9.6)); //-9.0
System.out.println(Math.ceil(-9.3)); //-9.0
floor
返回小于或等于参数且为整数的double 类型的最大值
System.out.println(Math.floor(6.6)); //6.0
System.out.println(Math.floor(6.2)); //6.0
System.out.println(Math.floor(0)); //0.0
System.out.println(Math.floor(-6.6)); //-7.0
System.out.println(Math.floor(-6.2)); //-7.0
3.1 round
四舍五入,float时返回int值,double时返回long值
/**
* Math.round()
* @param double/float
*/
System.out.println(Math.round(4.2)); //4
System.out.println(Math.round(4.5)); //5
System.out.println(Math.round(6.45)); //6
System.out.println(Math.round(0)); //0
System.out.println(Math.round(-6.45)); //-6
System.out.println(Math.round(-6.2)); //-6
3.2 rint
四舍五入,返回最接近这个数的double值,如果刚好居中,则取偶数。
System.out.println(Math.rint(4.5)); //4.0
System.out.println(Math.rint(4.6)); //5.0
System.out.println(Math.rint(4.2)); //4.0
System.out.println(Math.rint(7.5)); //8.0
System.out.println(Math.rint(-7.3)); //-7.0
System.out.println(Math.rint(-7.5)); //-8.0
System.out.println(Math.rint(-8.5)); //-8.0
max
返回两个数中的较大值。如果参数具有相同的值,则结果是相同的值。
System.out.println(Math.max(3,5.5)); //5.5
System.out.println(Math.max(4,8)); //8
System.out.println(Math.max(4.7,6.5)); //6.5
System.out.println(Math.max(-5,-8)); //-5
min
返回两个数中的较小值。如果参数具有相同的值,则结果是相同的值。
System.out.println(Math.min(4.7,8.8)); //4.7
System.out.println(Math.min(3,6)); //3
System.out.println(Math.min(2,0.0)); //0.0
System.out.println(Math.min(-5,-7.6)); //-7.6
random
返回带有正号的double值,大于等于0.0且小于1.0 。 从该范围均匀分布伪随机地生成返回值。
//生成指定区间[a , b)随机数公式:
//Math.random()*(b-a) + a
System.out.println(Math.random()); //随机生成[0,1)区间double类型的数
System.out.println(Math.random()*90+10); //随机生成[10,100)区间double类型的数