📜  Java数学减去Exact()

📅  最后修改于: 2020-09-27 02:20:54             🧑  作者: Mango

Java Math的excludeExact()方法减去指定的数字并返回它。

subtractExact()方法的语法为:

Math.subtractExact(num1, num2)

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


excludeExact()参数

subtractExact()方法采用两个参数。

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

注意 :这两个值的数据类型应为intlong


excludeExact()返回值
  • 返回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
  }
}

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


示例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。当我们减去ab时

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

因此, subtractExact()方法将引发integer overflow异常。


推荐的教程

  • Math.addExact()
  • Math.multiplyExact()