Java常用类库-Math类
2019-04-08 本文已影响4人
白晓明
Math类包含一系列执行数值运算的方法,如初等指数、对数、平方根和三角函数等。与StricMath类的一些数值方法不同,Math类的等效函数的所有实现都没有定义返回相同结果的位。
实现规范的质量涉及两个方面:返回结果的准确性和方法的单调性。
1. 字段摘要(硬翻译:Field Summary)
/*
* Math类的静态属性,即不可修改的属性
* static double E:自然对数的底。
* 比其他任何值都接近e的双精度值
* static double PI:圆周率(圆的周长与直径之比)。
* 比其他任何值都接近PI的双精度值
*/
System.out.println(Math.E);
System.out.println(Math.PI);
2. 方法摘要
-
获取正弦值( sin )
/*
* 返回指定double类型参数的正弦值。特殊情况:
* 如果参数是NaN或无穷大,则结果为NaN。
* 如果参数时0,则结果为0,符号与参数相同。
*/
//使用toRadians()方法将角度转换为弧度
System.out.println(Math.sin(Math.toRadians(90)));//1.0
System.out.println(Math.sin(0));//0.0
-
获取余弦值( cos )
/*
* 返回指定double类型参数的余弦值。特殊情况:
* 如果参数时NaN或无穷大,则结果为NaN。
*/
System.out.println(Math.cos(Math.toRadians(45.0)));//0.707
-
获取正切值( tan )
/*
* 返回指定double类型参数的正切值。特殊情况:
* 如果参数是NaN或无穷大,则结果为NaN。
* 如果参数时0,则结果为0,符号与参数相同。
*/
System.out.println(Math.tan(Math.toRadians(45.0)));//1
-
获取反正弦值( asin )
/*
* 返回指定double类型参数的反正弦值。返回角度在-pi/2到pi/2范围内。特殊情况:
* 如果参数为NaN或其绝对值大于1,则结果为NaN。
* 如果参数为0,则结果为0,符号与参数相同。
*/
//使用toDegrees将参数转成角度
System.out.println(Math.toDegrees(Math.asin(0.7071)));//45°
-
获取反余弦值( acos )
/*
* 返回指定double类型参数的反余弦值。返回值在0到pi范围。特殊情况:
* 如果参数为NaN或其绝对值大于1,则结果为NaN。
*/
System.out.println(Math.toDegrees(Math.acos(0)));//90°
-
获取反正切值( atan )
/*
* 返回指定double类型参数的反正切值。返回角度在-pi/2到pi/2范围内。特殊情况:
* 如果参数为NaN,则结果为NaN。
* 如果参数为0,则结果为0,符号与参数相同。
*/
System.out.println(Math.toDegrees(Math.atan(1)));//45°
-
将角度转化为弧度
/*
* 将以度为单位的角度转换为以弧度为单位的近似等效角度。从度到弧度的转换通常是不精确的。
*/
System.out.println(Math.toRadians(45.0));//0.785
-
将参数转化为度数
/*
* 将以弧度为单位的角度转换为以度为单位的近似等效角度。从弧度到度数的转换通常是不精确的。
*/
System.out.println(Math.toDegrees(0.785));//45°
-
返回自然数底数e的参数次方
/*
* 返回自然数底数e的参数次方。特殊情况:
* 如果参数值是NaN,则返回NaN。
* 如果参数值是正无穷大,则返回正无穷大。
* 如果参数值是负无穷大,则返回0。
*/
System.out.println(Math.exp(4.0));//54.60
-
返回自然数底数的对数值
/*
* 返回参数的自然数底数的对数值。特殊情况:
* 如果参数为NaN或小于0,则结果为NaN。
* 如果参数为正无穷大,则结果为正无穷大。
* 如果参数为0,则结果为负无穷大。
*/
System.out.println(Math.log(54.60));//4.0
-
返回以10为底数的对数值
/*
* 返回以10为底数的对数值。特殊情况:
* 如果参数为NaN或小于0,则返回NaN。
* 如果参数为正无穷大,则结果为正无穷大。
* 如果参数为0,则结果为负无穷大。
* 如果整数n的参数等于10n,则结果为n。
*/
System.out.println(Math.log10(100));//2.0
-
算术平方根
/*
* 求参数的算术平方根。特殊情况:
* 如果参数为NaN或小于0,则结果为NaN。
* 如果参数为正无穷大,则结果为正无穷大。
* 如果参数为0,则结果与参数相同。
*/
System.out.println(Math.sqrt(-4));//NaN
System.out.println(Math.sqrt(16));//4.0
System.out.println(Math.sqrt(0));//0.0
-
返回参数的绝对值
/*
* 返回参数的绝对值。
*/
System.out.println(Math.abs(-2.5));//2.5
-
返回最小整数
/*
* 返回大于或等于参数的最小整数。特殊情况:
* 如果参数值已经等于数学整数,则结果与参数相同。
* 如果参数时NaN或无穷大或0,则结果与参数相同。
* 如果参数值小于0但大于-1.0,则结果为0.
*/
System.out.println(Math.ceil(1.0));//1.0
System.out.println(Math.ceil(-0.5));//-0.0
-
返回最接近的整数
/*
* 返回小于等于给定参数的最大整数。特殊情况:
* 如果参数值已经等于数学整数,则结果与参数相同。
* 如果参数时NaN或无穷大或0,则结果与参数相同。
*/
System.out.println(Math.floor(2.8));//2.0
System.out.println(Math.floor(-0.5));//-1.0
-
返回与参数最接近的整数
/*
* 返回与参数最接近的整数
*/
System.out.println(Math.rint(1.6));//2.0
-
幂次方
/*
* 返回第一个参数的幂次方。
/
System.out.println(Math.pow(2, 2));//4.0
-
四舍五入
/*
* 四舍五入。
*/
System.out.println(Math.round(0.6));//1.0
-
随机数
/*
* 返回随机数
*/
System.out.println(Math.random());//0.264
-
最小值
/*
* 返回两个参数中的最小值。
*/
System.out.println(Math.min(2.6, 4.5));//2.6
-
最大值
/*
* 返回两个参数中的最大值。
*/
System.out.println(Math.max(2.6, 4.5));//4.5
其他需要请查看官方API