subtractExact()
方法的语法为:
Math.subtractExact(num1, num2)
在这里, subtractExact()
是一个静态方法。因此,我们使用类名Math
来访问该方法。
excludeExact()参数
subtractExact()
方法采用两个参数。
- num1-从中减去num2的值
- num2-从num1减去的值
注意 :这两个值的数据类型应为int
或long
。
excludeExact()返回值
- 返回num1和num2之差
示例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
}
}
在上面的示例中,我们使用了带有int
和long
变量的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。当我们减去a和b时 ,
2147483647 - (-1)
=> 2147483647 + 1
=> 2147483648 // out of range of int type
因此, subtractExact()
方法将引发integer overflow
异常。
推荐的教程
- Math.addExact()
- Math.multiplyExact()