Java Math.nextDown() 方法

java.lang.Math.nextDown() 是一个Java内置的数学方法。它沿负无穷大方向返回与用户指定的参数(d)相邻的浮点值。此方法等价于于nextAfter(d,Double.NEGATIVE_INFINITY)方法。nextDown()方法的实现可能比其等价的nextAfter()方法调用运行得更快。

1 语法

public static double nextDown(double a)  
public static float nextDown(float a)  

2 参数

a :起始浮点值

3 返回值

此方法返回更接近负无穷大的相邻浮点值。  

  • 如果参数为NaN,则此方法将返回NaN。
  • 如果参数为零,并且我们正在处理double,则此方法将返回Double.MIN_VALUE。
  • 如果参数为零并且我们正在处理float,则此方法将返回Float.MIN_VALUE。
  • 如果参数为Negative Infinity,则此方法将返回Negative Infinity。

4 示例1

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        float x = 0.0f / 0;
        // 输入 NaN, 输出 NaN
        System.out.println(Math.nextDown(x));
    }
}

输出结果为:

NaN

5 示例2

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        double x = 744.93;
        // 输入double值,输出相邻浮点数
        System.out.println(Math.nextDown(x));
    }
}

输出结果为:

744.9299999999998

6 示例3

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        float a = 328.7f;
        //输入float值,输出相邻浮点
        System.out.println(Math.nextDown(a));
    }
}

输出结果为:

328.69998

7 示例4

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        float x = 0.0f;
        //输入零,输出float.MIN_VALUE为float
        System.out.println(Math.nextDown(x));
    }
}

输出结果为:

-1.4E-45

8 示例5

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        double x = 0.0;
        //输入零,输出Double.MIN_VALUE为double  
        System.out.println(Math.nextDown(x));
    }
}

输出结果为:

-4.9E-324

9 示例6

package com.yiidian;

/**
 * 一点教程网: http://www.yiidian.com
 */
public class Demo
{
    public static void main(String[] args)
    {
        Float x = -1.0f / 0;
        // 输入负无穷大,输出负无穷大
        System.out.println(Math.nextDown(x));
    }
}

输出结果为:

-Infinity

 

热门文章

优秀文章