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 befloatordouble.

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****.**