English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
يستخدم طريقة Java Math excludeExact() لطرح الرقم المحدد ويعود به.
نموذج لغة Java subtractExact()
Math.subtractExact(num1, ب)
ملاحظة:subtractExact() هي طريقة ثابتة. لذلك يمكننا استخدام اسم فئة Math لاستدعاء هذه الطريقة.
num1 / num2 - للعودة بأول والثاني قيمتهما
ملاحظة:يجب أن تكون هاتان القيمتان من نفس نوع البيانات (int أو long).
يعود بالفرق بين القيمتين
import java.lang.Math; class Main { public static void main(String[] args) { //إنشاء متغير int int أ = 54; int ب = 30; //subtractExact() مع إدخال نوع بيانات integer System.out.println(Math.subtractExact(a, ب)); // 24 //إنشاء متغير long long ج = 72345678l; long د = 17654321l; //subtractExact() مع إدخال long System.out.println(Math.subtractExact(c, ب)); // 54691357 } }
في المثال السابق، استخدمنا طريقة Math.subtractExact() التي تأخذ متغيرات int وlong لحساب الفرق.
إذا كان نتيجة الفرق تتخطى نطاق نوع البيانات، فإن طريقة excludeExact() ستولد استثناءً. أي أن النتيجة يجب أن تكون داخل نطاق نوع البيانات المحدد للمتغير.
import java.lang.Math; class Main { public static void main(String[] args) { //إنشاء متغير int //أكبر قيمة int int أ = 2147483647; int ب = -1; //subtractExact() مع إدخال int //توليد استثناء System.out.println(Math.subtractExact(a, ب)); } }
在上述实例中,a的值是最大int值和b的值是-1。当我们减去a和时b,
2147483647 - (-1) => 2147483647 + 1 => 2147483648 //超出int类型的范围
لذلك، يسبب طريقة subtractExact() استثنائية التهريب العددية.