Java Math类常用方法汇总(附带实例)
Java 中的 Math 类提供了众多数学函数方法,主要包括三角函数方法,指数函数方法,取整函数方法,取最大值、最小值,以及平均值函数方法。
Math 类中的方法都被定义为 static 形式,所以在程序中应用比较简便,可以使用如下形式调用:
在 Math 类中,除函数方法外还存在一些常用数学常量,如 PI、E 等。这些数学常量作为 Math 类的成员变量出现,调用起来也很简单。可以使用如下形式调用:
以上每个方法的参数和返回值都是 double 型的。将这些方法的参数的值设置为 double 型是有一定道理的,参数以弧度代替角度来实现,其中 1° 等于 π/180 弧度,因此 180° 可以使用 π 弧度来表示。
除了可以获取角的正弦、余弦、正切、反正弦、反余弦、反正切,Math 类还提供了角度和弧度相互转换的方法,即 toRadians() 和 toDegrees()。但需要注意的是,角度与弧度的转换通常是不精确的。
【实例】在 Java 代码中进行三角函数运算。在项目中创建 TrigonometricFunction 类,在类的主方法中调用 Math 类提供的各种三角函数运算方法,并输出运算结果。
在结果中可以看到,第 4~6 行的值是基本相同的,这个值被换算后正是 45°,也就是获取的 Math.sqrt(2)/2 反正弦、反余弦值与 1 的反正切值都是 45°。
最后两行输出语句实现的是角度和弧度的转换,其中 Math.toRadians(120.0) 语句是获取 120° 的弧度值,而 Math.toDegrees(Math.PI/2) 语句是获取 π/2 的角度值。读者可以将这些具体的值使用 π 的形式表示出来,与上述结果应该是基本一致的,这些结果不能做到十分精确,因为 π 本身也是一个近似值。
指数运算包括求方根、取对数以及求 n 次方的运算。为了使读者更好地理解这些运算函数方法的用法,下面举例说明。
【实例】在 Java 代码中进行指数函数运算。在项目中创建 ExponentFunction 类,在类的主方法中调用 Math 类中的方法实现指数函数的运算,并输出运算结果。
Math 类中主要包括以下几种取整方法。
下面以 1.5 作为参数,获取取整函数的返回值。下图用坐标轴的形式对此进行了展示。

图 1 取整函数的返回值
【实例】各场景下取整函数的运算结果。在项目中创建 IntFunction 类,在类的主方法中调用 Math 类中的方法实现取整函数的运算,并输出运算结果。
【实例】取最大值、最小值、绝对值的方法。在项目中创建 AnyFunction 类,在类的主方法中调用 Math 类中的方法实现求两数的最大值、最小值和取绝对值的运算,并输出运算结果:
Math 类中的方法都被定义为 static 形式,所以在程序中应用比较简便,可以使用如下形式调用:
Math.数学方法
在 Math 类中,除函数方法外还存在一些常用数学常量,如 PI、E 等。这些数学常量作为 Math 类的成员变量出现,调用起来也很简单。可以使用如下形式调用:
Math.PI Math.EMath 类中的常用数学运算方法较多,大致可以将其分为四大类别,分别为三角函数方法,指数函数方法,取整函数方法,以及取最大值、最小值和绝对值函数方法。
Math类三角函数方法
Math 类中包含的三角函数方法如下:方法 | 功能描述 |
---|---|
public static double sin(double a) | 返回角的三角正弦。 |
public static double cos(double a) | 返回角的三角余弦。 |
public static double tan(double a) | 返回角的三角正切。 |
public static double asin(double a) | 返回一个值的反正弦。 |
public static double acos(double a) | 返回一个值的反余弦。 |
public static double atan(double a) | 返回一个值的反正切。 |
public static double toRadians(double angdeg) | 将角度转换为弧度。 |
public static double toDegrees(double angrad) | 将弧度转换为角度。 |
以上每个方法的参数和返回值都是 double 型的。将这些方法的参数的值设置为 double 型是有一定道理的,参数以弧度代替角度来实现,其中 1° 等于 π/180 弧度,因此 180° 可以使用 π 弧度来表示。
除了可以获取角的正弦、余弦、正切、反正弦、反余弦、反正切,Math 类还提供了角度和弧度相互转换的方法,即 toRadians() 和 toDegrees()。但需要注意的是,角度与弧度的转换通常是不精确的。
【实例】在 Java 代码中进行三角函数运算。在项目中创建 TrigonometricFunction 类,在类的主方法中调用 Math 类提供的各种三角函数运算方法,并输出运算结果。
public class TrigonometricFunction { public static void main(String[] args) { System.out.println("90 度的正弦值:" + Math.sin(Math.PI / 2)); // 取 90° 的正弦 System.out.println("0 度的余弦值:" + Math.cos(0)); // 取 0° 的余弦 System.out.println("60 度的正切值:" + Math.tan(Math.PI / 3)); // 取 60° 的正切 // 取 2 的平方根与 2 商的反正弦 System.out.println("2 的平方根与 2 商的反正弦值:" + Math.asin(Math.sqrt(2) / 2)); // 取 2 的平方根与 2 商的反余弦 System.out.println("2 的平方根与 2 商的反余弦值:" + Math.acos(Math.sqrt(2) / 2)); System.out.println("1 的反正切值:" + Math.atan(1)); // 取 1 的反正切 System.out.println("120 度的弧度值:" + Math.toRadians(120.0)); // 取 120° 的弧度值 System.out.println("π/2 的角度值:" + Math.toDegrees(Math.PI / 2)); // 取 π/2 的角度 } }运行结果如下:
90度的正弦值:1.0 0度的余弦值:1.0 60度的正切值:1.7320508075688767 2的平方根与2商的反正弦值:0.7853981633974484 2的平方根与2商的反余弦值:0.7853981633974483 1的反正切值:0.7853981633974483 120度的弧度值:2.0943951023931953 π/2的角度值:90.0通过运行结果可以看出,90° 的正弦值为 1,0° 的余弦值为 1,60° 的正切与 Math.sqrt(3) 的值应该是一致的,也就是取 3 的平方根。
在结果中可以看到,第 4~6 行的值是基本相同的,这个值被换算后正是 45°,也就是获取的 Math.sqrt(2)/2 反正弦、反余弦值与 1 的反正切值都是 45°。
最后两行输出语句实现的是角度和弧度的转换,其中 Math.toRadians(120.0) 语句是获取 120° 的弧度值,而 Math.toDegrees(Math.PI/2) 语句是获取 π/2 的角度值。读者可以将这些具体的值使用 π 的形式表示出来,与上述结果应该是基本一致的,这些结果不能做到十分精确,因为 π 本身也是一个近似值。
Math类指数函数方法
Math 类中与指数相关的函数方法如下:方法 | 功能描述 |
---|---|
public static double exp(double a) | 用于获取e的a次方,即取eª。 |
public static double log(double a) | 用于取自然对数,即取lna的值。 |
public static double log10(double a) | 用于取底数为10的a的对数。 |
public static double sqrt(double a) | 用于取a的平方根,其中a的值不能为负值。 |
public static double cbrt(double a) | 用于取a的立方根。 |
public static double pow(double a, double b) | 用于取a的b次方。 |
指数运算包括求方根、取对数以及求 n 次方的运算。为了使读者更好地理解这些运算函数方法的用法,下面举例说明。
【实例】在 Java 代码中进行指数函数运算。在项目中创建 ExponentFunction 类,在类的主方法中调用 Math 类中的方法实现指数函数的运算,并输出运算结果。
public class ExponentFunction { public static void main(String[] args) { System.out.println("e 的平方值:" + Math.exp(2)); // 取 e 的 2 次方 System.out.println("以 e 为底 2 的对数值:" + Math.log(2)); // 取以 e 为底 2 的对数 System.out.println("以 10 为底 2 的对数值:" + Math.log10(2)); // 取以 10 为底 2 的对数 System.out.println("4 的平方根值:" + Math.sqrt(4)); // 取 4 的平方根 System.out.println("8 的立方根值:" + Math.cbrt(8)); // 取 8 的立方根 System.out.println("2 的 2 次方值:" + Math.pow(2, 2)); // 取 2 的 2 次方 } }运行结果如下:
e的平方值:7.38905609893065 以e为底2的对数值:0.6931471805599453 以10为底2的对数值:0.3010299956639812 4的平方根值:2.0 8的立方根值:2.0 2的2次方值:4.0在本实例中可以看到,使用 Math 类中的方法比较简单,直接使用 Math 类名调用相应的方法即可。
Math类取整函数方法
在具体的问题中,取整操作使用也很普遍,因此 Java 在 Math 类中添加了数字取整方法。Math 类中主要包括以下几种取整方法。
方法 | 功能描述 |
---|---|
public static double ceil(double a) | 返回大于或等于参数的最小整数。 |
public static double floor(double a) | 返回小于或等于参数的最大整数。 |
public static double rint(double a) | 返回与参数最接近的整数,如果存在两个同样接近的整数,则结果取偶数。 |
public static int round(float a) | 将参数加上0.5后返回与参数最近的整数。 |
public static long round(double a) | 将参数加上0.5后返回与参数最近的整数,然后强制转换为长整型。 |
下面以 1.5 作为参数,获取取整函数的返回值。下图用坐标轴的形式对此进行了展示。

图 1 取整函数的返回值
注意,由于数 1.0 和数 2.0 距离数 1.5 都是 0.5 个单位长度,因此 Math.rint(1.5) 返回偶数 2.0。
【实例】各场景下取整函数的运算结果。在项目中创建 IntFunction 类,在类的主方法中调用 Math 类中的方法实现取整函数的运算,并输出运算结果。
public class IntFunction { public static void main(String[] args) { System.out.println("使用 ceil()方法取整:" + Math.ceil(5.2)); // 返回一个大于或等于参数的整数 System.out.println("使用 floor()方法取整:" + Math.floor(2.5)); // 返回一个小于或等于参数的整数 System.out.println("使用 rint()方法取整:" + Math.rint(2.7)); // 返回与参数最接近的整数 System.out.println("使用 rint()方法取整:" + Math.rint(2.5)); // 返回与参数最接近的整数 // 将参数加上 0.5 后返回最接近的整数 System.out.println("使用 round()方法取整:" + Math.round(3.4f)); // 将参数加上 0.5 后返回最接近的整数,并将结果强制转换为长整型 System.out.println("使用 round()方法取整:" + Math.round(2.5)); } }运行结果如下:
使用ceil()方法取整:6.0 使用floor()方法取整:2.0 使用rint()方法取整:3.0 使用rint()方法取整:2.0 使用round()方法取整:3 使用round()方法取整:3
Math类取最大值、最小值、绝对值函数方法
在程序中最常用的方法就是取最大值、最小值、绝对值等,Math类中包括的操作方法如下。方法 | 功能描述 |
---|---|
public static double max(double a, double b) | 取a与b之间的最大值。 |
public static int min(int a, int b) | 取a与b之间的最小值,参数为整型。 |
public static long min(long a, long b) | 取a与b之间的最小值,参数为长整型。 |
public static float min(float a, float b) | 取a与b之间的最小值,参数为单精度浮点型。 |
public static double min(double a, double b) | 取a与b之间的最小值,参数为双精度浮点型。 |
public static int abs(int a) | 返回整型参数的绝对值。 |
public static long abs(long a) | 返回长整型参数的绝对值。 |
public static float abs(float a) | 返回单精度浮点型参数的绝对值。 |
public static double abs(double a) | 返回双精度浮点型参数的绝对值。 |
【实例】取最大值、最小值、绝对值的方法。在项目中创建 AnyFunction 类,在类的主方法中调用 Math 类中的方法实现求两数的最大值、最小值和取绝对值的运算,并输出运算结果:
public class AnyFunction { public static void main(String[] args) { System.out.println("4 和 8 较大者:" + Math.max(4, 8)); // 取两个参数的最大值 System.out.println("4.4 和 4 较小者:" + Math.min(4.4, 4)); // 取两个参数的最小值 System.out.println("-7 的绝对值:" + Math.abs(-7)); // 取参数的绝对值 } }运行结果如下:
4和8较大者:8
4.4和4较小者:4.0
-7的绝对值:7