Java Math.nextAfter() 方法

java.lang.Math.nextAfter() 返回第二个参数的方向相邻的第一个参数的浮点数。如果第一个参数和第二个参数相同,则此方法将返回第二个参数。

1 语法

public static double nextAfter(double a, double b)  
public static float nextAfter(float a, double b)  

2 参数

a :起始浮点值  
b :方向值,表示返回起点的邻居或起点  

3 返回值

此方法沿b的方向返回与起点a相邻的浮点数。  

  • 如果任何一个参数都是NaN,则此方法将返回NaN。
  • 如果两个参数都为零,则方向将保持不变。
  • 如果起始参数(a)等于正负Double.MIN_VALUE或Float.MIN_VALUE,并且方向参数(b)具有一个值,使得结果的幅度应较小,则此方法将返回零,其符号与参数相同。
  • 如果起始参数(a)等于正或负Double.MAX_VALUE或Float.MAX_VALUE,并且方向参数(b)具有一个值,使得结果应具有较大的大小,则此方法将返回与该参数具有相同符号的Infinite。
  • 如果起始参数(a)为无穷大,并且方向参数(b)的值应使结果的大小较小,则此方法将返回具有相同符号的Double.MAX_VALUE。

4 示例1

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        double a = 84352.24;
        double b = 154.284;
        //为b打印下一个数字
        System.out.println(Math.nextAfter(a, b));
        //向a打印下一个b的数字
        System.out.println(Math.nextAfter(b, a));
    }
}

输出结果为:

84352.23999999999
154.28400000000002

5 示例2

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        float a = 787.843f;
        double b = 345.56;
        //为b打印下一个数字  
        System.out.println(Math.nextAfter(a, b));
    }
}

输出结果为:

787.84296

6 示例3

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        double a = Double.MIN_VALUE;
        double b = 354.2489;
        System.out.println(Math.nextAfter(a, b));
    }
}

输出结果为:

1.0E-323

7 示例4

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        float a = Float.MAX_VALUE;
        float b = 793.37f;
        System.out.println(Math.nextAfter(a, b));
    }
}

输出结果为:

3.4028233E38

 

热门文章

优秀文章