当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Math.ulp()用法及代码示例


java.lang.Math.ulp() 返回参数的 ulp 的大小。 ulp 是最后一个单位。 float 或 double 值的 ulp 是给定值与下一个较大的值之间的正距离。

注意:对于非 NaN x,ulp(-x) == ulp(x)。

用法

public static double ulp(double x)
public static float ulp(float x)

参数

x = a floating-point value whose ulp is to be returned

返回

It returns the size of an ulp of the argument.
  • 如果参数为正或负双精度或浮点值,则此方法将返回输出。
  • 如果参数是正无穷大或负无穷大,此方法将返回正无穷大。
  • 如果参数为正或负零,则此方法将返回 Double.MIN_VALUE。
  • 如果参数是 Ä…Double.MAX_VALUE,此方法将返回等于 2971 的结果。
  • 如果参数是 Ä…Float.MAX_VALUE,此方法将返回等于 2104 的结果。
  • 如果参数为 NaN,则此方法将返回 NaN。

例子1

public class UlpExample1
{
    public static void main(String[] args) 
    {
        double a = 8.1;
        // Input positive double value, Output ulp(a)
        System.out.println(Math.ulp(a));
    }
}

输出:

1.7763568394002505E-15

例子2

public class UlpExample2
{
    public static void main(String[] args) 
    {
        double a = -37.1;
        // Input negative double value, Output ulp(-a)==ulp(a)
        System.out.println(Math.ulp(a));
    }
}

输出:

7.105427357601002E-15

例子3

public class UlpExample3
{
    public static void main(String[] args) 
    {
        float a = -1.0f / 0;
        // Input negative infinity, Output positive infinity
        System.out.println(Math.ulp(a));
    }
}

输出:

Infinity

示例 4

public class UlpExample4
{
    public static void main(String[] args) 
    {
        double a = 0.0;
        // Input zero, Output Double.MIN_VALUE
        System.out.println(Math.ulp(a));
    }
}

输出:

4.9E-324

例 5

public class UlpExample5
{
    public static void main(String[] args) 
    {
        double a = Double.MAX_VALUE ;
        // Input Double.MAX_VALUE, Output 2 power of 971
        System.out.println(Math.ulp(a));
    }
}

输出:

1.9958403095347198E292

例 6

public class UlpExample6
{
    public static void main(String[] args) 
    {
        float a = Float.MAX_VALUE ;
        // Input Float.MAX_VALUE, Output 2 power of 104
        System.out.println(Math.ulp(a));
    }
}

输出:

2.028241E31






相关用法


注:本文由纯净天空筛选整理自 Java Math.ulp() method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。