Math类提供静态数学方法,如Math.pow(a,b)计算a的b次方(如2³=8.0),Math.sqrt(a)求平方根,负数开方返回NaN。

Java中的Math类是处理数学运算最直接的工具,它提供了一组静态方法,无需实例化就能调用,覆盖了取整、幂运算、三角函数、随机数等常见需求。
基础四则与幂运算相关方法
Math类不直接提供加减乘除(这些用+ - * /即可),但封装了更复杂的数值计算:
- Math.pow(double a, double b):计算a的b次方,返回double。例如Math.pow(2, 3)结果为8.0;注意底数为负且指数非整数时可能返回NaN。
- Math.sqrt(double a):求平方根,aMath.sqrt(16)得4.0。
- Math.cbrt(double a):求立方根,支持负数,如Math.cbrt(-27)返回-3.0。
取整与舍入操作
Java提供了多种“取整”方式,区别在于方向和返回类型:
- Math.floor(double a):向下取整(≤a的最大整数),返回double,如Math.floor(3.9)→3.0,Math.floor(-3.1)→-4.0。
- Math.ceil(double a):向上取整(≥a的最小整数),如Math.ceil(3.1)→4.0,Math.ceil(-3.9)→-3.0。
- Math.round(double a):四舍五入到最近的long(float版返回int),原理是Math.floor(a + 0.5),如Math.round(2.5)→3L,Math.round(-2.5)→-2L(注意-2.5向正无穷偏移)。
绝对值、最大最小值与符号处理
这些方法对基本类型都做了重载,使用安全且高效:
立即学习“Java免费学习笔记(深入)”;
- Math.abs():支持int/long/float/double,注意Math.abs(Integer.MIN_VALUE)仍为Integer.MIN_VALUE(溢出)。
- Math.max() / Math.min():同类型两参数比大小,如Math.max(5, -2)返回5;可嵌套使用实现多值比较。
- Math.signum(double a):返回-1.0(负)、0.0(零)、1.0(正),适合快速判断符号而不关心具体值。
三角函数与常量
所有角度单位均为弧度,需用Math.toRadians()或Math.toDegrees()转换:
- 常用函数:Math.sin()、Math.cos()、Math.tan()、Math.asin()等,输入输出都是double。
- 两个关键常量:Math.PI(π ≈ 3.14159...)和Math.E(自然对数底 ≈ 2.71828...),直接使用即可,无需自己定义。
基本上就这些。Math类方法全是static,线程安全,性能好,日常数值处理足够覆盖。注意别把角度当弧度传给sin/cos,也别忽略溢出和NaN边界情况。










