📅  最后修改于: 2023-12-03 15:02:05.377000             🧑  作者: Mango
Longs.checkedSubtract(long a, long b) 方法是由 Google 提供的 Guava 框架中的一个方法,它的作用是计算两个 long 类型的数值 a 和 b 的差值,并且在溢出的情况下抛出 ArithmeticException 异常。
public static long checkedSubtract(long a, long b) throws ArithmeticException
| 参数 | 描述 |
| --- | --- |
| a
| 被减数 |
| b
| 减数 |
两个 long 类型数值 a 和 b 的差值。
当计算结果会导致溢出时,抛出 ArithmeticException 异常。
import com.google.common.math.LongMath;
import java.math.RoundingMode;
public class LongsCheckedSubtractDemo {
public static void main(String[] args) {
long a = 9223372036854775807L;
long b = 1L;
try {
long result = LongMath.checkedSubtract(a, b);
System.out.println(result);
} catch (ArithmeticException e) {
System.out.println("计算溢出了!");
}
}
}
在上述示例中,我们尝试计算两个 long 类型的数 a 和 b 的差值,a 的值为 9223372036854775807,b 的值为 1。由于 a - b 的结果已经超出了 long 类型的取值范围,因此 LongMath.checkedSubtract(long a, long b) 方法会抛出 ArithmeticException 异常,输出 "计算溢出了!"。
如果我们将 b 的值改为 -1,那么 a - b 的结果就在 long 类型的取值范围内,此时 LongMath.checkedSubtract(long a, long b) 方法会正确地返回 a - b 的值 9223372036854775808。
Longs.checkedSubtract(long a, long b) 方法是一个计算 long 类型数值差值的方法,它可以确保计算结果不会溢出,并在溢出的情况下抛出 ArithmeticException 异常。因此,在进行 long 类型数值的差值计算时,可以优先考虑使用该方法。