Math

数学运算工具类

java.lang.Math

文档: Math (Java SE 17 & JDK 17)

两个常量

Math.E 自然对数

Math.PI 圆周率

随机数

greater than or equal to 0.0 and less than 1.0 [0.0, 1.0)

Math.random()

指定范围:

1
2
3
4
5
int max = 9;
int min = 7;

// random后面 x 代表取的个数 + 后面代表最小取值
int random = min + (int)(Math.random() * (max - min + 1));

绝对值

int abs(int a) long abs(long a)
负数最小值有bug,因没有对应的正数而返回原负数

absExact(int a) absExact(long a)
JDK15 新增,如果输入参数为整数最小值,则抛出 Exception

float abs(float a) double abs(double a)

求整运算

double ceil(double a) 向上取整(数值偏大)
double floor(double a) 向下取整(数值偏小)

double rint(double a) 四舍六入五成双

int round(float a) long round(double a)
四舍六入五向上

最大值、最小值

返回最大值:
int max(int x,int y)
double max(double x,double y)
long max(long x,long y)
float max(float x,float y)

返回最小值:
int min(int x,int y)
long min(long x,long y)
double min(double x,double y)
float min(float x,float y)

指数运算

方根、取对数及其求 n 次方的运算

方法 说明
double pow(double a,double b) a的b次方
double exp(double a) 返回 e 的 a 次幂
double sqrt(double a) 平方根
double cbrt(double a) 立方根
double log(double a) 返回 a 的自然对数,即 lna 的值
double log10(double a) 返回以 10 为底 a 的对数

三角函数运算

方法 说明
double sin(double a) 返回角的三角正弦值,参数以孤度为单位
double cos(double a) 返回角的三角余弦值,参数以孤度为单位
double asin(double a) 返回一个值的反正弦值,参数域在 [-1,1],值域在 [-PI/2,PI/2]
double acos(double a) 返回一个值的反余弦值,参数域在 [-1,1],值域在 [0.0,PI]
double tan(double a) 返回角的三角正切值,参数以弧度为单位
double atan(double a) 返回一个值的反正切值,值域在 [-PI/2,PI/2]
double toDegrees(double angrad) 将用孤度表示的角转换为近似相等的用角度表示的角
double toRadians(double angdeg) 将用角度表示的角转换为近似相等的用弧度表示的角