跳到主要内容

Java Math subtractExact() 方法

subtractExact() 方法的语法是:

Math.subtractExact(num1, num2)

这里,subtractExact() 是一个静态方法。因此,我们通过类名 Math 来访问这个方法。

subtractExact() 参数

subtractExact() 方法接收两个参数。

  • num1 - 从中减去 num2 的值
  • num2 - 被从 num1 中减去的值

注意:两个值的数据类型必须是 intlong

subtractExact() 返回值

  • 返回 num1num2 之间的差值

示例 1:Java Math.subtractExact()

import java.lang.Math;

class Main {
public static void main(String[] args) {

// 创建 int 变量
int a = 54;
int b = 30;

// 使用 int 参数的 subtractExact()
System.out.println(Math.subtractExact(a, b)); // 24

// 创建 long 变量
long c = 72345678l;
long d = 17654321l;

// 使用 long 参数的 subtractExact()
System.out.println(Math.subtractExact(c, d)); // 54691357
}
}

在上面的示例中,我们使用了 Math.subtractExact() 方法和 intlong 变量来计算差值。

示例 2:Math.subtractExact() 抛出异常

如果差值的结果超出了数据类型的范围,subtractExact() 方法会抛出异常。即,结果应该在指定变量的数据类型范围内。

import java.lang.Math;

class Main {
public static void main(String[] args) {

// 创建 int 变量
// 最大 int 值
int a = 2147483647;
int b = -1;

// 使用 int 参数的 subtractExact()
// 抛出异常
System.out.println(Math.subtractExact(a, b));
}
}

在上面的示例中,a 的值是最大的 int 值,b 的值是 -1。当我们减去 ab

  2147483647 - (-1)
=> 2147483647 + 1
=> 2147483648 // 超出 int 类型的范围

因此,subtractExact() 方法抛出了 integer overflow 异常。

推荐教程