Java Math类库 | 算法实用总结 | 蓝桥杯java组备赛

Java Math类是Java标准库中的一个数学计算类,可以为我们在算法应用中提供很大的帮助。

且由于Math类中的方法都是静态的,因此可以直接通过类名调用,而不需要创建Math类的实例。使用起来十分便捷,下面列出Math中各函数、常量的使用方法。

目录

常量 

Math.E

Math.PI

函数

数学运算函数

Math.abs( x ) 绝对值

Math.max(x,y)最大值

Math.min(x,y) 最小值

Math.pow(x,y)  次幂

Math.sqrt(x) 平方根

Math.ceil(x)和Math.floor(y) 取整

 Math.round(x)

三角函数

Math.sin()

Math.cos()

Math.tan()

指数函数

Math.log(x)

Math.exp(x)


常量 

Math.E

得到自然对数的底数,如

System.out.println(Math.E);
//输出:2.718281828459045

Math.PI

得到圆周率,如

System.out.println(Math.PI);
//输出:3.141592653589793

函数

数学运算函数

Math.abs( x ) 绝对值

返回x的绝对值。

参数x,可以是任意数学类型。如

int a = -3;
double b = -2.0;
System.out.println("a的绝对值:" + Math.abs(a) + ",b的绝对值:" + Math.abs(b));
//输出:a的绝对值:3,b的绝对值:2.0

Math.max(x,y)最大值

返回x和y中的最大值

注意此时会有java的类型转换规则,即若x,y中有类型不一致,那么会返回其中较高的类型。

int a = -3;
int b = 2;
System.out.println("最大值为"+Math.max(a,b));
//输出:最大值为2
int c = 4;
double d = 2.0;
System.out.println("最大值为"+Math.max(c,d));
//输出:最大值为4.0

Math.min(x,y) 最小值

返回x和y中的最小值

类型转换规则和Math.max()同理,如

int a = -3;
int b = 2;
System.out.println("最小值为"+Math.min(a,b));
//输出:最小值为-3
int c = -4;
double d = 2.0;
System.out.println("最小值为"+Math.min(c,d));
//输出:最小值为-4.0

Math.pow(x,y)  次幂

返回x^y的double形式,函数的原型为

public static double pow(double x, double y)

其中x和y都是double类型的参数。这意味着参数可以是整数或小数,没有特定的要求。

函数将返回x的y次幂,结果一定是double类型的。

如果要得到int型,要自己转换。如

System.out.println(Math.pow(6,2));
//输出:36.0
System.out.println((int)Math.pow(6,2));
//输出:36

Math.sqrt(x) 平方根

返回根号x,即x的平方根

函数的原型为

public static double sqrt(double x)

会返回double类型的结果,因此操作和Math.pow()同理。如

System.out.println(Math.sqrt(16));
//输出:4.0
System.out.println((int)Math.sqrt(16));
//输出:4

Math.ceil(x)和Math.floor(y) 取整

1. floor直接取其含义,也就是“地板”,地板在脚下,即向下取整。

2. ceil是ceiling的缩写,也就是“天花板”,天花板在头顶上,即向上取整。

这里需要注意,floor()和ceil()的返回值都是double类型的数值。

System.out.println(Math.ceil(4.5));
//输出:5.0
System.out.println(Math.floor(4.5));
//输出4.0

若要得到int型,跟前边一样类型转换就ok了。

 Math.round(x)

对四舍五入取整

round()的四舍五入也可以引入y轴来确定:

不管正数还是负数,四舍五入法要求,凡是.5的小数,都要向上取整。

因此,负数.5小数的四舍五入,只需直接取绝对值,再加上负号,就完成了。如

System.out.println(Math.round(4.5));
//输出:5
System.out.println(Math.round(-4.6));
//输出:-5
System.out.println(Math.round(-4.5));
//输出:-4

 实际例子比较

参数Math.floorMath.roundMath.ceil
4.4445
4.5455
4.6455
-4.4-5-4-5
-4.5-5-4-5
-4.6-5-5-5

三角函数

Math.sin()

返回一个数的正弦值,原型为

public static double sin(double a)

结果也是double类型,如

System.out.println(Math.sin(Math.PI/2));
//输出:1.0

Math.cos()

返回一个数的余弦值,原型为

public static double cos(double a)

结果也是double类型,如

System.out.println(Math.cos(Math.PI));
//输出:-1.0

Math.tan()

返回一个数的正切值,原型为

public static double tan(double a)

结果也是double类型,如

System.out.println(Math.tan(Math.PI/2));
//输出:1.633123935319537E16

指数函数

Math.log(x)

返回一个数的自然对数(以e为底的对数),原型为

public static double log(double x)

结果也是double类型,如

System.out.println(Math.log(Math.E));
//输出:1.0

Math.exp(x)

返回e^x,原型为

public static double exp(double a)

因此x可以是任意类型,如

System.out.println(Math.exp(2.2));
//输出:9.025013499434122