Skip to content
Related Articles

Related Articles

Java Math nextAfter() method with Example
  • Last Updated : 15 Apr, 2018

The java.lang.Math.nextAfter() returns the floating-point number adjacent to the first argument in the direction of the second argument. If both arguments are equal then the second argument is returned.

Syntax :
// datatype can be float or double.
public static dataType nextAfter(dataType st, dataType dir)

Parameter :
st :starting floating-point value.
dir :value indicating which of start’s neighbors or start should be returned.

Return :
This method returns the floating-point number adjacent to start in the direction of direction.

Note :



  • If one of the arguments is NaN, Output is NaN
  • If both arguments are signed zeros, direction is returned unchanged(as implied by the requirement of returning the second argument if the arguments compare as equal).
  • If start is Double.MIN_VALUE or Float.MIN_VALUE and direction has a value such that the result should have a smaller magnitude, then a zero with the same sign as start is returned.
  • If start is infinite and direction has a value such that the result should have a smaller magnitude, Double.MAX_VALUE or Float.MAX_VALUE with the same sign as start is returned.
  • If start is equal to Double.MAX_VALUE or Float.MAX_VALUE and direction has a value such that the result should have a larger magnitude, an infinity with same sign as start is returned.

Example 1 :To show working of java.lang.Math.nextAfter() method.




// Java program to demonstrate working
// of java.lang.Math.nextAfter() method
import java.lang.Math;
  
class GfG {
  
    // driver code
    public static void main(String args[])
    {
        double a = 0.0 / 0;
        double b = 12.2;
  
        // Input a is NaN, Output NaN
        System.out.println(Math.nextAfter(a, b));
  
        double c = 0.0;
        double d = 0.0;
  
        // Both Input are signed zeros, Output zero
        System.out.println(Math.nextAfter(c, d));
  
        float e = Float.MIN_VALUE;
        float f = 12.2f;
  
        System.out.println(Math.nextAfter(e, f));
  
        float g = 1.0f / 0f;
        float h = 1.0f;
  
        System.out.println(Math.nextAfter(g, h));
  
        double i = Double.MAX_VALUE;
        double j = 12344.2;
  
        System.out.println(Math.nextAfter(i, j));
    }
}

Output:

NaN
0.0
2.8E-45
3.4028235E38
1.7976931348623155E308

Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up
Recommended Articles
Page :