Java Math的excludeExact()方法減去指定的數(shù)字并返回它。
subtractExact()方法的語法為:
Math.subtractExact(num1, num2)
注意:subtractExact()是靜態(tài)方法。因此,我們可以使用Math類名來訪問該方法。
num1 / num2 - 要返回其差值的第一個(gè)和第二個(gè)值
注意:這兩個(gè)值的數(shù)據(jù)類型應(yīng)為int 或 long。
返回兩個(gè)值之間的差
import java.lang.Math; class Main { public static void main(String[] args) { //創(chuàng)建int變量 int a = 54; int b = 30; //帶整型參數(shù)的subtractExact() System.out.println(Math.subtractExact(a, b)); // 24 //創(chuàng)建long變量 long c = 72345678l; long d = 17654321l; //帶long參數(shù)的subtractExact() System.out.println(Math.subtractExact(c, d)); // 54691357 } }
在上面的示例中,我們使用了帶有 int 和l ong 變量的Math.subtractExact()方法來計(jì)算差值。
如果差值的結(jié)果溢出數(shù)據(jù)類型,則方法excludeExact()會(huì)引發(fā)異常。 也就是說,結(jié)果應(yīng)在指定變量的數(shù)據(jù)類型范圍內(nèi)。
import java.lang.Math; class Main { public static void main(String[] args) { //創(chuàng)建int變量。 //最大int值 int a = 2147483647; int b = -1; //帶int參數(shù)的subtractExact() //引發(fā)異常 System.out.println(Math.subtractExact(a, b)); } }
在上述實(shí)例中,a的值是最大int值和b的值是-1。當(dāng)我們減去a和時(shí)b,
2147483647 - (-1) => 2147483647 + 1 => 2147483648 //超出int類型的范圍
因此,subtractExact()方法引發(fā)整數(shù)溢出異常。