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) {

    // create int variable
    int a = 54;
    int b = 30;

    // subtractExact() with int arguments
    System.out.println(Math.subtractExact(a, b));  // 24

    // create long variable
    long c = 72345678l;
    long d = 17654321l;

    // subtractExact() with long arguments
    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) {

    // create int variable
    // maximum int value
    int a = 2147483647;
    int b = -1;

    // subtractExact() with int arguments
    // throws exception
    System.out.println(Math.subtractExact(a, b));
  }
}

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

  2147483647 - (-1)
=> 2147483647 + 1
=> 2147483648      // out of range of int type

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


另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战