常用类库-java.lang.Math
简介
类名:public final class Math extends Object
类 Math 包含用于执行基本数字运算的方法,例如基本指数,对数,平方根和三角函数。Math 类不可以被继承,类中的方法都是静态方法,以 Math . 方法名 的形式调用。
常用字段
E
字段名:public static final double E
介绍:
e e e 在数学中为自然常数,它是自然对数函数的底数,其本身是一个无限不循环小数。此处 E 是 java 中一个最接近
该自然常数的数,且 E = 2.718281828459045 。
PI
字段名:public static final double PI
介绍:
p i pi pi 是一个数学常数,它表示圆周率,即圆的周长与直径的比值,其本身是一个无限不循环小数。此处 PI 是 java 中一个最接近该常数的数,且 PI = 3.141592653589793 。
常用方法
abs
方法名:
public static int abs(int a)
public static long abs(long a)
public static float abs(float a)
public static double abs(double a)
作用:
返回传入的参数 a 的绝对值。
特例:
int 中的最小值 Integer.MIN_VALUE 的绝对值不变。
long 中的最小值 Long.MIN_VALUE 的绝对值不变。
float 和 double 中正无穷和负无穷的绝对值是正无穷大,NaN 的绝对值是NaN。
使用案例:
public class MathTest {
public static void main(String[] args) {
System.out.println(1 + " 取绝对值 " + Math.abs(1));
System.out.println(-1 + " 取绝对值 " + Math.abs(-1));
System.out.println(0 + " 取绝对值 " + Math.abs(0));
System.out.println(-0 + " 取绝对值 " + Math.abs(-0));
System.out.println(Integer.MAX_VALUE + " 取绝对值 " + Math.abs(Integer.MAX_VALUE));
System.out.println(Integer.MIN_VALUE + " 取绝对值 " + Math.abs(Integer.MIN_VALUE));
System.out.println(Long.MAX_VALUE + " 取绝对值 " + Math.abs(Long.MAX_VALUE));
System.out.println(Long.MIN_VALUE + " 取绝对值 " + Math.abs(Long.MIN_VALUE));
System.out.println(Float.NaN + " 取绝对值 " + Math.abs(Float.NaN));
System.out.println(Double.NaN + " 取绝对值 " + Math.abs(Double.NaN));
System.out.println(Float.POSITIVE_INFINITY + " 取绝对值 " + Math.abs(Float.POSITIVE_INFINITY));
System.out.println(Float.NEGATIVE_INFINITY + " 取绝对值 " + Math.abs(Float.NEGATIVE_INFINITY));
System.out.println(Double.POSITIVE_INFINITY + " 取绝对值 " + Math.abs(Double.POSITIVE_INFINITY));
System.out.println(Double.NEGATIVE_INFINITY + " 取绝对值 " + Math.abs(Double.NEGATIVE_INFINITY));
}
}
max
方法名:
public static int max(int a, int b)
public static long max(long a, long b)
public static float max(float a, float b)
public static double max(double a, double b)
作用:
比较参数 a 与 b 的值,返回参数中较大的那一个数。任何数与 NaN 比较结果都是 NaN 。
min
方法名:
public static int min(int a, int b)
public static long min(long a, long b)
public static float min(float a, float b)
public static double min(double a, double b)
作用:
比较参数 a 与 b 的值,返回参数中较小的那一个数。任何数与 NaN 比较结果都是 NaN 。
ceil
方法名:public static double ceil(double a)
作用:
返回一个大于等于传入参数 a 的最小整数的 double 值。
特例:
- 参数为整数时,返回值与参数相等。
- 参数为 NaN 或无穷大或正负零时,返回值与参数相等。
- 参数在区间 (-1 , 0) 内时,返回值为 -0.0。
使用案例:
/**
*@ClassName: CeilTest
*@Description: ceil的使用
*
*/
public class CeilTest {
public static void main(String[] args) {
System.out.println("2.1 取ceil " + Math.ceil(2.1));
System.out.println("2.0 取ceil " + Math.ceil(2.0));
System.out.println("-2.1 取ceil " + Math.ceil(-2.1));
System.out.println("-2.0 取ceil " + Math.ceil(-2.0));
System.out.println("-0.1 取ceil " + Math.ceil(-0.1));
System.out.println("-0.0 取ceil " + Math.ceil(-0.0));
System.out.println("0.0 取ceil " + Math.ceil(0.0));
System.out.println("NaN 取ceil " + Math.ceil(Double.NaN));
System.out.println("正无穷 取ceil " + Math.ceil(Double.POSITIVE_INFINITY));
System.out.println("负无穷 取ceil " + Math.ceil(Double.NEGATIVE_INFINITY));
}
}
floor
方法名:public static double floor(double a)
作用:
返回一个小于等于传入参数 a 的最大整数的 double 值。
特例:
- 参数为整数时,返回值与参数相等。
- 参数为 NaN 或无穷大或正负零时,返回值与参数相等。
使用案例:
/**
*@ClassName: FloorTest
*@Description: floor的使用
*
*/
public class FloorTest {
public static void main(String[] args) {
System.out.println("2.1 取floor " + Math.floor(2.1));
System.out.println("2.0 取floor " + Math.floor(2.0));
System.out.println("-2.1 取floor " + Math.floor(-2.1));
System.out.println("-2.0 取floor " + Math.floor(-2.0));
System.out.println("-0.1 取floor " + Math.floor(-0.1));
System.out.println("-0.0 取floor " + Math.floor(-0.0));
System.out.println("0.0 取floor " + Math.floor(0.0));
System.out.println("NaN 取floor " + Math.floor(Double.NaN));
System.out.println("正无穷 取floor " + Math.floor(Double.POSITIVE_INFINITY));
System.out.println("负无穷 取floor " + Math.floor(Double.NEGATIVE_INFINITY));
}
}
rint
方法名:public static double rint(double a)
作用:
返回一个最接近传入参数 a 的整数的 double 值。当向上和向下取值一样接近时,取结果为偶数的取值,例如: 1.5 则取 2.0 、2.5 则取 2.0 、3.5 则取 4.0。
特例:
- 参数为整数时,返回值与参数相等。
- 参数为 NaN 或无穷大或正负零时,返回值与参数相等。
使用案例:
/**
*@ClassName: RintTest
*@Description: rint的使用
*
*/
public class RintTest {
public static void main(String[] args) {
System.out.println("2.1 取rint " + Math.rint(2.1));
System.out.println("2.0 取rint " + Math.rint(2.0));
System.out.println("2.5 取rint " + Math.rint(2.5));
System.out.println("3.5 取rint " + Math.rint(3.5));
System.out.println("-0.5 取rint " + Math.rint(-0.5));
System.out.println("-1.5 取rint " + Math.rint(-1.5));
System.out.println("-0.1 取rint " + Math.rint(-0.1));
System.out.println("-0.0 取rint " + Math.rint(-0.0));
System.out.println("0.0 取rint " + Math.rint(0.0));
System.out.println("NaN 取rint " + Math.rint(Double.NaN));
System.out.println("正无穷 取rint " + Math.rint(Double.POSITIVE_INFINITY));
System.out.println("负无穷 取rint " + Math.rint(Double.NEGATIVE_INFINITY));
}
}
round
方法名:
public static int round(float a)
public static long round(double a)
作用:
- 返回一个最接近传入参数 a 的整数的 int 值。当向上和向下取值一样接近时,向上取值,即取结果较大的取值,例如: 1.5 距 1.0 和 2.0 一样近,最终取 2.0 。
- 返回一个最接近传入参数 a 的整数的 long 值。当向上和向下取值一样接近时,向上取值,即取结果较大的取值,例如: 1.5 距 1.0 和 2.0 一样近,最终取 2.0 。
特例:
- 参数为 NaN 时,返回值为 0。
- 方法1,当参数为 float 型正无穷或参数大于等于 Integer.MAX_VALUE 时,返回值为 Integer.MAX_VALUE 。
- 方法1,当参数为 float 型负无穷或参数小于等于 Integer.MIN_VALUE 时,返回值为 Integer.MIN_VALUE 。
- 方法2,当参数为 double 型正无穷或参数大于等于 Long.MAX_VALUE 时,返回值为 Long.MAX_VALUE 。
- 方法2,当参数为 double 型负无穷或参数小于等于 Long.MIN_VALUE 时,返回值为 Long.MIN_VALUE 。
使用案例:
/**
*@ClassName: RoundTest
*@Description: round的使用
*
*/
public class RoundTest {
public static void main(String[] args) {
System.out.println("2.0 取round " + Math.round(2.0));
System.out.println("2.1 取round " + Math.round(2.1));
System.out.println("2.5 取round " + Math.round(2.5));
System.out.println("-0.1 取round " + Math.round(-0.1));
System.out.println("-0.5 取round " + Math.round(-0.5));
System.out.println("-0.9 取round " + Math.round(-0.9));
System.out.println("-1.4 取round " + Math.round(-1.4));
System.out.println("-1.5 取round " + Math.round(-1.5));
System.out.println("-1.6 取round " + Math.round(-1.6));
System.out.println("-0.0 取round " + Math.round(-0.0));
System.out.println("0.0 取round " + Math.round(0.0));
System.out.println("NaN 取round " + Math.round(Float.NaN));
System.out.println("NaN 取round " + Math.round(Double.NaN));
System.out.println("float正无穷 取round " + Math.round(Float.POSITIVE_INFINITY));
System.out.println("float负无穷 取round " + Math.round(Float.NEGATIVE_INFINITY));
System.out.println("double正无穷 取round " + Math.round(Double.POSITIVE_INFINITY));
System.out.println("double负无穷 取round " + Math.round(Double.NEGATIVE_INFINITY));
System.out.println("int最大值 取round " + Math.round(Integer.MAX_VALUE * 1.0f));
System.out.println("大于int最大值 取round " + Math.round(Integer.MAX_VALUE + 2.0f));
System.out.println("long最大值 取round " + Math.round(Long.MAX_VALUE * 1.0d));
System.out.println("大于long最大值 取round " + Math.round(Long.MAX_VALUE + 2.0d));
}
}
random
方法名:public static double random()
作用:
返回一个 double 类型的伪随机数,其值大于等于0.0且小于1.0,即在区间 [ 0.0 , 1.0 ) 内。
使用案例:
pow
方法名:public static double pow(double a, double b)
作用:
返回 a b a^b ab 的结果的 double 值。
使用案例:
sqrt
方法名:public static double sqrt(double a)
作用:
返回 a \sqrt{a} a 的结果的 double 值。
特例:
- 参数 a 小于 0 或为负无穷或为 NaN 时,返回值为 NaN 。
- 参数 a 为正零或负零时,返回值不变仍为参数。
- 参数 a 为正无穷时,返回值为正无穷。
使用案例:
/**
*@ClassName: SqrtTest
*@Description: sqrt的使用
*
*/
public class SqrtTest {
public static void main(String[] args) {
System.out.println("2 取sqrt " + Math.sqrt(2));
System.out.println("4 取sqrt " + Math.sqrt(4));
System.out.println("0.0 取sqrt " + Math.sqrt(0.0));
System.out.println("-0.0 取sqrt " + Math.sqrt(-0.0));
System.out.println("-1 取sqrt " + Math.sqrt(-1));
System.out.println("NaN 取sqrt " + Math.sqrt(Double.NaN));
System.out.println("负无穷 取sqrt " + Math.sqrt(Double.NEGATIVE_INFINITY));
System.out.println("正无穷 取sqrt " + Math.sqrt(Double.POSITIVE_INFINITY));
}
}