negateExact()
متد negateExact برای «تغییر علامت دقیق جاوا» است. یک عدد را برعکس علامت می کند. اما اگر این کار باعث سرریز شود، خطا می دهد. این یعنی نتیجه اشتباه نمی گیری.
تغییر علامت دقیق جاوا یعنی چه؟
این متد مقدار برابر با علامت برعکس می دهد. اما اگر مقدار Integer.MIN_VALUE یا Long.MIN_VALUE باشد، معکوس مثبت ندارد. بنابراین خطای زمان اجرا پرتاب می شود.
سینتکس (Syntax)
public static int negateExact(int x);
public static long negateExact(long x);
نمونه کد از منبع
System.out.println(Math.negateExact(15));
System.out.println(Math.negateExact(-32));
System.out.println(Math.negateExact(7));
System.out.println(Math.negateExact(-25));
هشدار: اگر تغییر علامت باعث سرریز شود، ArithmeticException پرتاب می شود.
نکته: اگر فقط می خواهی یکی اضافه کنی، از incrementExact() استفاده کن. برای جمع امن هم addExact() عالی است.
تمرین گام به گام
- یک متغیر (Variable) عددی تعیین کن.
- با
Math.negateExactعلامت را برعکس کن. - مقدارهای خیلی کوچک منفی هم تست کن.
جمع بندی سریع
- تغییر علامت دقیق جاوا، نتیجه مطمئن می دهد.
- برای مقادیر مین، خطا رخ می دهد.
- نسخه های int و long موجود است.
- در سرریز،
ArithmeticExceptionپرتاب می شود.