nextAfter()
می خواهی عدد اعشاری بعدی جاوا را پیدا کنی؟ متد nextAfter() همین کار را می کند. از عدد x شروع می کند و به سمت y یک قدم خیلی ریز می رود.
عدد اعشاری بعدی یعنی چه؟
«عدد اعشاری (Floating point)» عدد با اعشار است. nextAfter(x, y) نزدیک ترین عدد اعشاریِ کنارِ x را برمی گرداند. اگر y بزرگ تر از x باشد، کمترین عدد بزرگ تر از x را می دهد. اگر y کوچک تر باشد، بیشترین عدد کوچک تر از x را می دهد. اگر برابر باشند، خود x برگردانده می شود.
سینتکس
public static double nextAfter(double x, double y);
public static float nextAfter(float x, double y);
مثال از منبع
System.out.println(Math.nextAfter(1, 2));
System.out.println(Math.nextAfter(1, 0));
System.out.println(Math.nextAfter(0.5f, 1.0f));
System.out.println(Math.nextAfter(0.5f, 0.0f));
نکته: برای نوع های double حرکت ریزتر است و نتیجه به x نزدیک تر می شود.
هشدار: این متد فقط یک گام واحد می رود؛ اگر چند گام می خواهی، چند بار صدا بزن.
تمرین گام به گام
- یک متغیر (Variable) اعشاری بساز.
- جهت حرکت را با عدد دوم تعیین کن.
- خروجی را چاپ کن و تفاوت را ببین.
لینک های مرتبط
اگر فقط بالا بروی، از nextUp() استفاده کن. اگر فقط پایین بیایی، nextDown() را ببین. همچنین برای جستجوی عدد اعشاری بعدی جاوا در جهت بالا، این لینک مفید است.
جمع بندی سریع
- nextAfter عدد کنار x را می دهد.
- جهت با y مشخص می شود.
- برابر بودن y و x، نتیجه x است.
- double از float دقیق تر حرکت می کند.