Open In App

Java Math nextAfter() method with Example

Last Updated : 30 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

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 of nextAfter() method

// 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 the start in the direction of the 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 of Java Math nextAfter() method

Example 1: 

To show the working of java.lang.Math.nextAfter() method. 

Java




// 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

Example 2:

Java




// 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 i = 956.4343;
        double j = 1234.21;
 
        System.out.println(Math.nextAfter(i, j));
    }
}


Output

956.4343000000001


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads