Java中的 StrictMath nextAfter() 方法
- nextAfter( double start, double direction )是Java StrictMath 类的内置方法,用于获取与第二个参数direction方向的start相邻的浮点数。根据参数的类型和变化,这种方法产生的条件很少。
- 当两个参数相等时,结果是第二个参数。
- 当任何一个参数为 NaN 时,结果为 NaN。
- 结果是当两个参数都是有符号零时方向没有任何变化。
- 当start为±Double.MIN_VALUE并且direction的值使得结果具有较小的幅度时,结果是与start具有相同符号的零。
- 结果是Double.MAX_VALUE与start 相同的符号,当 start是无限的并且direction具有一个值,使得结果应该具有较小的幅度。
- 当start等于±Double.MAX_VALUE并且方向的值使得结果应该具有更大的量级时,结果是具有相同开始符号的无穷大。
句法:
public static double nextAfter(double start, double direction)
参数:该方法接受两个参数:
- start:这是 double 类型,指的是起始浮点值。
- 方向:这是双精度类型,指的是指示是否应返回起点的邻居或起点的值。
返回值:该方法在direction的方向上返回与start相邻的浮点数。
例子 :
Input: start = 72.74d direction = 1.2d Output: 72.73999999999998
下面的程序说明了Java.lang.StrictMath.nextAfter() 方法:
// Java program to demonstrate nextAfter() import java.lang.*; public class Geeks { public static void main(String[] args) { double start = 23.62d, direction = 0.0d; double result = StrictMath.nextAfter(start, direction); System.out.println("The NextAfter is = " + result); result = StrictMath.nextAfter(start, 9.2d); System.out.println("The NextAfter is = " + result); result = StrictMath.nextAfter(direction, 7.2d); System.out.println("The NextAfter is =" + result); // Returns 0 if both arguments are zero result = StrictMath.nextAfter(direction, 0.0d); System.out.println("The NextAfter is =" + result); } }
输出:The NextAfter is = 23.619999999999997 The NextAfter is = 23.619999999999997 The NextAfter is =4.9E-324 The NextAfter is =0.0
- nextAfter( float start, double direction )是Java中StrictMath类的一个内置方法,用于获取第二个参数direction方向上与start相邻的浮点数。
- 当两个参数相等时,结果是第二个参数。
- 当任何一个参数为 NaN 时,结果为 NaN。
- 结果是当两个参数都是有符号零时方向没有任何变化。
- 当start为 ±Float.MIN_VALUE 且direction的值应使结果的幅度较小时,结果为与start符号相同的零。
- 结果是 Float.MAX_VALUE 与start 相同的符号,当 start是无限的并且direction有一个值使得结果应该有一个较小的量级。
- 当start等于 ±Float.MAX_VALUE 并且direction的值使得结果应该具有更大的量值时,结果是具有相同符号的无穷大。
句法:
public static double nextAfter(float start, double direction)
参数:该方法接受两个参数:
- start:这是浮点类型,指的是起始浮点值。
- 方向:这是双精度类型,指的是指示是否应返回起点的邻居或起点的值。
返回值:该方法返回浮点数,在direction的方向上与start相邻。
例子 :
Input: start = 22.2f direction = 0.0d Output: 22.20000076293945
下面的程序说明了Java.lang.StrictMath.nextAfter() 方法:
// Java program to demonstrate nextAfter() import java.lang.*; public class Geeks { public static void main(String[] args) { double start = 42.9f; double direction = 0.0d; double result = StrictMath.nextAfter(start, direction); System.out.println("The NextAfter is = " + result); result = StrictMath.nextAfter(start, 9.2d); System.out.println("The NextAfter is = " + result); result = StrictMath.nextAfter(direction, 7.2d); System.out.println("The NextAfter is =" + result); // Returns 0 if both arguments is zero result = StrictMath.nextAfter(direction, 0.0d); System.out.println("The NextAfter is =" + result); } }
输出:The NextAfter is = 42.9000015258789 The NextAfter is = 42.9000015258789 The NextAfter is =4.9E-324 The NextAfter is =0.0