java如何取绝对值
使用 Math.abs() 方法
Java 提供了 Math.abs() 方法用于获取数值的绝对值。该方法支持多种数据类型,包括 int、long、float 和 double。
示例代码:
int a = -5;
int absA = Math.abs(a); // 结果为 5
double b = -3.14;
double absB = Math.abs(b); // 结果为 3.14
处理 Integer.MIN_VALUE 的特殊情况
对于 int 和 long 类型,Math.abs() 无法正确处理 Integer.MIN_VALUE 或 Long.MIN_VALUE,因为它们的绝对值超出了数据类型的表示范围。此时返回值仍是负数。
解决方案:

int minValue = Integer.MIN_VALUE;
int absMin = Math.abs(minValue); // 错误:仍为 Integer.MIN_VALUE
// 安全处理方式
if (minValue == Integer.MIN_VALUE) {
System.out.println("无法计算绝对值");
} else {
System.out.println(Math.abs(minValue));
}
自定义绝对值方法
如果需要处理边界情况或特定逻辑,可以自定义绝对值方法。
示例代码:

public static int customAbs(int num) {
return num < 0 ? -num : num;
}
// 测试
System.out.println(customAbs(-10)); // 输出 10
使用三元运算符简化逻辑
对于简单场景,可以直接使用三元运算符替代 Math.abs()。
示例代码:
int x = -7;
int absX = x < 0 ? -x : x; // 结果为 7
注意事项
- 浮点数类型的
Math.abs()不会溢出,但可能返回NaN或Infinity。 - 对于
BigInteger和BigDecimal,需调用其自带的abs()方法。
BigInteger 示例:
BigInteger bigInt = new BigInteger("-123456789");
BigInteger absBigInt = bigInt.abs(); // 结果为 123456789






