📜  Java中的 StrictMath nextAfter() 方法

📅  最后修改于: 2022-05-13 01:54:53.731000             🧑  作者: Mango

Java中的 StrictMath nextAfter() 方法

  1. nextAfter( double start, double direction )是Java StrictMath 类的内置方法,用于获取与第二个参数direction方向的start相邻的浮点数。根据参数的类型和变化,这种方法产生的条件很少。
    • 当两个参数相等时,结果是第二个参数。
    • 当任何一个参数为 NaN 时,结果为 NaN。
    • 结果是当两个参数都是有符号零时方向没有任何变化。
    • start±Double.MIN_VALUE并且direction的值使得结果具有较小的幅度时,结果是与start具有相同符号的零。
    • 结果是Double.MAX_VALUEstart 相同的符号,当 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
    
  2. 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