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)); } } |
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)); } } |
956.4343000000001