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() methodimport 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() methodimport 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
