青岛市网站建设_网站建设公司_H5网站_seo优化
2025/12/22 22:57:21 网站建设 项目流程

Java 中Math类的常用方法,java.lang.Math是 Java 提供的数学工具类,包含了大量用于执行基本数学运算的静态方法(无需创建对象,直接通过Math.方法名()调用),下面按功能分类讲解核心常用方法:

一、基本算术运算

1. 绝对值:abs()

返回任意数值类型的绝对值,支持intlongfloatdouble四种类型。

// int 类型绝对值 System.out.println(Math.abs(-10)); // 输出:10 // double 类型绝对值 System.out.println(Math.abs(-3.14)); // 输出:3.14 // long 类型绝对值 System.out.println(Math.abs(-10000000000L)); // 输出:10000000000

2. 取整运算

(1)向下取整:floor(double a)

返回小于等于参数a的最大整数(向负无穷方向取整),返回值为double类型。

System.out.println(Math.floor(3.9)); // 输出:3.0 System.out.println(Math.floor(-3.1)); // 输出:-4.0
(2)向上取整:ceil(double a)

返回大于等于参数a的最小整数(向正无穷方向取整),返回值为double类型。

System.out.println(Math.ceil(3.1)); // 输出:4.0 System.out.println(Math.ceil(-3.9)); // 输出:-3.0
(3)四舍五入:round()

按 “四舍五入” 规则取整,支持两种类型:

  • long round(double a):对double类型取值,返回long类型结果;
  • int round(float a):对float类型取值,返回int类型结果。
// double 类型四舍五入 System.out.println(Math.round(3.49)); // 输出:3(long 类型) System.out.println(Math.round(3.5)); // 输出:4(long 类型) // float 类型四舍五入 System.out.println(Math.round(2.3f)); // 输出:2(int 类型)
(4)就近取整(银行家舍入法):rint(double a)

返回最接近参数a的整数,若存在两个等距整数,返回偶数,返回值为double类型。

System.out.println(Math.rint(3.5)); // 输出:4.0(与 3 和 4 等距,返回偶数 4) System.out.println(Math.rint(4.5)); // 输出:4.0(与 4 和 5 等距,返回偶数 4) System.out.println(Math.rint(3.2)); // 输出:3.0

3. 取余运算:IEEEremainder(double f1, double f2)

返回两个double类型数值的余数(遵循 IEEE 754 标准,与%运算符略有差异,通常场景下%更常用)。

System.out.println(Math.IEEEremainder(10, 3)); // 输出:1.0 System.out.println(Math.IEEEremainder(10, -3)); // 输出:1.0

二、数值比较与极值

1. 最大值:max()

返回两个同类型数值中的较大值,支持intlongfloatdouble四种类型。

System.out.println(Math.max(10, 20)); // 输出:20(int 类型) System.out.println(Math.max(3.14, 2.71)); // 输出:3.14(double 类型)

2. 最小值:min()

返回两个同类型数值中的较小值,支持intlongfloatdouble四种类型。

System.out.println(Math.min(10, 20)); // 输出:10(int 类型) System.out.println(Math.min(3.14, 2.71)); // 输出:2.71(double 类型)

3. 限制数值范围(JDK 1.8+):clamp()

将数值限制在minmax之间,若数值小于min返回min,大于max返回max,否则返回自身,支持intlongfloatdouble四种类型。

System.out.println(Math.clamp(15, 10, 20)); // 输出:15(在范围内,返回自身) System.out.println(Math.clamp(5, 10, 20)); // 输出:10(小于最小值,返回 min) System.out.println(Math.clamp(25, 10, 20)); // 输出:20(大于最大值,返回 max)

三、幂运算与指数 / 对数运算

1. 幂运算:pow(double a, double b)

返回ab次方(a^b),两个参数均为double类型,返回值为double类型。

System.out.println(Math.pow(2, 3)); // 输出:8.0(2的3次方) System.out.println(Math.pow(10, 2)); // 输出:100.0(10的平方) System.out.println(Math.pow(4, 0.5)); // 输出:2.0(4的平方根,等价于 sqrt(4))

2. 平方根:sqrt(double a)

返回参数a的算术平方根(仅支持非负数值,负数返回NaN),返回值为double类型。

System.out.println(Math.sqrt(16)); // 输出:4.0 System.out.println(Math.sqrt(2)); // 输出:1.4142135623730951 System.out.println(Math.sqrt(-1)); // 输出:NaN(非数字)

3. 立方根:cbrt(double a)

返回参数a的立方根(支持正负数值),返回值为double类型。

System.out.println(Math.cbrt(8)); // 输出:2.0 System.out.println(Math.cbrt(-8)); // 输出:-2.0 System.out.println(Math.cbrt(27)); // 输出:3.0

4. 自然指数(e^x):exp(double a)

返回自然常数e(约 2.71828)的a次方,返回值为double类型。

System.out.println(Math.exp(1)); // 输出:2.718281828459045(e^1) System.out.println(Math.exp(2)); // 输出:7.38905609893065(e^2)

5. 对数运算

(1)自然对数(ln x):log(double a)

返回参数a的自然对数(以e为底),仅支持正数值,返回值为double类型。

System.out.println(Math.log(Math.E)); // 输出:1.0(ln e = 1) System.out.println(Math.log(10)); // 输出:2.302585092994046
(2)常用对数(log10 x):log10(double a)

返回参数a的常用对数(以 10 为底),仅支持正数值,返回值为double类型。

System.out.println(Math.log10(10)); // 输出:1.0 System.out.println(Math.log10(100)); // 输出:2.0

四、三角函数与反三角函数

1. 基础三角函数(参数为弧度值)

  • sin(double a):正弦函数
  • cos(double a):余弦函数
  • tan(double a):正切函数
// 30度对应的弧度值:Math.PI / 6 System.out.println(Math.sin(Math.PI / 6)); // 输出:0.5(正弦30度) // 60度对应的弧度值:Math.PI / 3 System.out.println(Math.cos(Math.PI / 3)); // 输出:0.5(余弦60度) // 45度对应的弧度值:Math.PI / 4 System.out.println(Math.tan(Math.PI / 4)); // 输出:1.0(正切45度)

2. 反三角函数(返回值为弧度值)

  • asin(double a):反正弦函数(返回值范围:[-π/2, π/2])
  • acos(double a):反余弦函数(返回值范围:[0, π])
  • atan(double a):反正切函数(返回值范围:[-π/2, π/2])
System.out.println(Math.asin(0.5)); // 输出:0.5235987755982988(对应30度,即π/6) System.out.println(Math.acos(0.5)); // 输出:1.0471975511965976(对应60度,即π/3) System.out.println(Math.atan(1.0)); // 输出:0.7853981633974483(对应45度,即π/4)

3. 角度与弧度转换

  • toRadians(double angdeg):角度转换为弧度
  • toDegrees(double angrad):弧度转换为角度
// 角度转弧度 System.out.println(Math.toRadians(30)); // 输出:0.5235987755982988(π/6) // 弧度转角度 System.out.println(Math.toDegrees(Math.PI / 4)); // 输出:45.0

五、随机数生成

1. 基础随机数:random()

返回一个[0.0, 1.0)区间内的随机double类型数值(包含 0.0,不包含 1.0)。

// 生成 10 个 [0.0, 1.0) 随机数 for (int i = 0; i < 10; i++) { System.out.println(Math.random()); } // 生成 [min, max) 区间的随机整数(示例:[1, 100)) int min = 1; int max = 100; int randomInt = (int) (Math.random() * (max - min) + min); System.out.println("1到99的随机整数:" + randomInt); // 生成 [min, max] 区间的随机整数(示例:[1, 100]) int randomInt2 = (int) (Math.random() * (max - min + 1) + min); System.out.println("1到100的随机整数:" + randomInt2);

六、常量与其他常用方法

1. 常用数学常量

  • Math.PI:圆周率(π),约等于 3.141592653589793
  • Math.E:自然常数(e),约等于 2.718281828459045
System.out.println("圆周率:" + Math.PI); System.out.println("自然常数:" + Math.E);

2. 符号函数:signum(double a)

返回数值的符号:正数返回 1.0,负数返回 -1.0,0 返回 0.0,支持doublefloat类型。

System.out.println(Math.signum(10.5)); // 输出:1.0 System.out.println(Math.signum(-3.2)); // 输出:-1.0 System.out.println(Math.signum(0)); // 输出:0.0

3. 绝对值与符号结合:copySign(double magnitude, double sign)

返回第一个参数的绝对值,并带有第二个参数的符号,支持doublefloat类型。

// 10.5 取绝对值,带上 -3.2 的符号(负号) System.out.println(Math.copySign(10.5, -3.2)); // 输出:-10.5 // -3.2 取绝对值,带上 10.5 的符号(正号) System.out.println(Math.copySign(-3.2, 10.5)); // 输出:3.2

七、完整使用示例

public class MathDemo { public static void main(String[] args) { // 1. 基本算术运算 System.out.println("绝对值:" + Math.abs(-15)); System.out.println("向下取整:" + Math.floor(4.7)); System.out.println("向上取整:" + Math.ceil(4.2)); System.out.println("四舍五入:" + Math.round(4.5)); // 2. 极值运算 System.out.println("最大值:" + Math.max(20, 30)); System.out.println("最小值:" + Math.min(20, 30)); System.out.println("范围限制:" + Math.clamp(25, 10, 20)); // 3. 幂运算与对数运算 System.out.println("2的4次方:" + Math.pow(2, 4)); System.out.println("16的平方根:" + Math.sqrt(16)); System.out.println("8的立方根:" + Math.cbrt(8)); System.out.println("以10为底100的对数:" + Math.log10(100)); // 4. 三角函数(角度转弧度) double radian = Math.toRadians(60); System.out.println("60度的正弦值:" + Math.sin(radian)); System.out.println("60度的余弦值:" + Math.cos(radian)); // 5. 随机数 int randomNum = (int) (Math.random() * 100 + 1); System.out.println("1到100的随机整数:" + randomNum); // 6. 常量 System.out.println("圆周率:" + Math.PI); System.out.println("自然常数:" + Math.E); } }

八、核心总结

  1. Math类是静态工具类,所有方法均为静态方法,直接通过Math.方法名()调用;
  2. 核心功能分类:算术运算(abs/floor/ceil/round)、极值运算(max/min/clamp)、幂 / 指数 / 对数运算(pow/sqrt/log)、三角函数、随机数(random);
  3. 注意事项:三角函数参数为弧度值,需通过toRadians()/toDegrees()进行角度与弧度转换;random()生成[0.0,1.0)随机数,需手动转换为指定区间的整数;
  4. 适用场景:数值计算、数据处理、随机数生成、几何运算等需要数学计算的场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询