Math 类的核心 API
1. 基本数学运算
(1) 绝对值
-
static int abs(int a)
:返回int
类型参数的绝对值。 -
static long abs(long a)
:返回long
类型参数的绝对值。 -
static float abs(float a)
:返回float
类型参数的绝对值。 -
static double abs(double a)
:返回double
类型参数的绝对值。int absValue = Math.abs(-10); // 10
(2) 最大值和最小值
-
static int max(int a, int b)
:返回两个int
类型参数中的最大值。 -
static long max(long a, long b)
:返回两个long
类型参数中的最大值。 -
static float max(float a, float b)
:返回两个float
类型参数中的最大值。 -
static double max(double a, double b)
:返回两个double
类型参数中的最大值。int maxValue = Math.max(10, 20); // 20
-
static int min(int a, int b)
:返回两个int
类型参数中的最小值。 -
static long min(long a, long b)
:返回两个long
类型参数中的最小值。 -
static float min(float a, float b)
:返回两个float
类型参数中的最小值。 -
static double min(double a, double b)
:返回两个double
类型参数中的最小值。int minValue = Math.min(10, 20); // 10
(3) 四舍五入
-
static long round(double a)
:返回double
类型参数四舍五入后的long
值。 -
static int round(float a)
:返回float
类型参数四舍五入后的int
值。long rounded = Math.round(10.6); // 11
(4) 取整
-
static double ceil(double a)
:返回大于或等于参数的最小整数(向上取整)。double ceilValue = Math.ceil(10.1); // 11.0
-
static double floor(double a)
:返回小于或等于参数的最大整数(向下取整)。double floorValue = Math.floor(10.9); // 10.0
(5) 随机数
-
static double random()
:返回一个[0.0, 1.0)
范围内的随机数。double randomValue = Math.random(); // 0.0 <= value < 1.0
2. 指数和对数运算
(1) 幂运算
-
static double pow(double a, double b)
:返回a
的b
次方。double power = Math.pow(2, 3); // 8.0
(2) 平方根
-
static double sqrt(double a)
:返回参数的平方根。double sqrtValue = Math.sqrt(16); // 4.0
(3) 立方根
-
static double cbrt(double a)
:返回参数的立方根。double cbrtValue = Math.cbrt(27); // 3.0
(4) 自然对数
-
static double log(double a)
:返回参数的自然对数(以e
为底)。double logValue = Math.log(Math.E); // 1.0
(5) 以 10 为底的对数
-
static double log10(double a)
:返回参数的以 10 为底的对数。double log10Value = Math.log10(100); // 2.0
(6) 指数函数
-
static double exp(double a)
:返回e
的a
次方。double expValue = Math.exp(1); // 2.71828...
3. 三角函数
(1) 正弦函数
-
static double sin(double a)
:返回参数的正弦值(参数为弧度)。double sinValue = Math.sin(Math.PI / 2); // 1.0
(2) 余弦函数
-
static double cos(double a)
:返回参数的余弦值(参数为弧度)。double cosValue = Math.cos(Math.PI); // -1.0
(3) 正切函数
-
static double tan(double a)
:返回参数的正切值(参数为弧度)。double tanValue = Math.tan(Math.PI / 4); // 1.0
(4) 反三角函数
-
static double asin(double a)
:返回参数的反正弦值(结果为弧度)。 -
static double acos(double a)
:返回参数的反余弦值(结果为弧度)。 -
static double atan(double a)
:返回参数的反正切值(结果为弧度)。 -
static double atan2(double y, double x)
:返回从直角坐标(x, y)
到极坐标的角度(结果为弧度)。double atan2Value = Math.atan2(1, 1); // π/4
4. 双曲函数
(1) 双曲正弦
-
static double sinh(double x)
:返回参数的双曲正弦值。double sinhValue = Math.sinh(1); // 1.1752...
(2) 双曲余弦
-
static double cosh(double x)
:返回参数的双曲余弦值。double coshValue = Math.cosh(1); // 1.54308...
(3) 双曲正切
-
static double tanh(double x)
:返回参数的双曲正切值。double tanhValue = Math.tanh(1); // 0.76159...
5. 角度和弧度转换
-
static double toRadians(double angdeg)
:将角度转换为弧度。double radians = Math.toRadians(180); // π
-
static double toDegrees(double angrad)
:将弧度转换为角度。double degrees = Math.toDegrees(Math.PI); // 180.0
6. 其他方法
(1) 符号函数
-
static double signum(double d)
:返回参数的符号函数值(-1、0 或 1)。double sign = Math.signum(-10.5); // -1.0
(2) 差值
-
static double hypot(double x, double y)
:返回sqrt(x² + y²)
。double hypotValue = Math.hypot(3, 4); // 5.0
(3) 乘加运算
-
static double fma(double a, double b, double c)
:返回a * b + c
(Java 9 引入)。double fmaValue = Math.fma(2, 3, 4); // 10.0
总结
Math
类提供了丰富的数学运算方法,涵盖了基本运算、指数对数、三角函数、双曲函数、角度弧度转换等。以下是常用方法的分类:
类别 | 方法 | 说明 |
---|---|---|
基本运算 | abs() 、max() 、min() | 绝对值、最大值、最小值 |
取整 | ceil() 、floor() 、round() | 向上取整、向下取整、四舍五入 |
随机数 | random() | 生成随机数 |
指数对数 | pow() 、sqrt() 、log() | 幂运算、平方根、对数 |
三角函数 | sin() 、cos() 、tan() | 正弦、余弦、正切 |
角度弧度转换 | toRadians() 、toDegrees() | 角度与弧度转换 |
其他 | signum() 、hypot() | 符号函数、平方和的平方根 |