📜  带有示例的Java Math ulp() 方法

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

带有示例的Java Math ulp() 方法

Java.lang.Math.ulp()是一个内置的Java方法,它返回参数的 ulp 的大小。ulp 代表最小精度单位。它计算给定的 double 或 float 值与
double 或 float 值下一个更大的数量级。
参数可以有两种类型:

  • ulp(float f) :它接受浮点类型的输入。
  • ulp(double d) :接受 double 类型的输入。

笔记 :

  • 如果参数为 NaN,则输出为 NaN。
  • 如果参数为正或负双精度或浮点值,则 ulp(-arg) 和 ulp(arg) 的输出相同。
  • 如果参数是正零或负零,输出将为 Double.MIN_VALUE 或 Float.MIN_VALUE。
  • 如果参数为正无穷或负无穷,则输出为正无穷。
  • 如果参数为正或负 Double.MAX_VALUE 或 Float.MAX_VALUE,则双精度类型的输出将为 2 971 ,浮点类型的输出将为 2 104

句法 :

public static dataType ulp(dataType g)
Parameter :
 g: argument whose ulp is to be returned.
Return :
This method returns the size of an ulp of the argument.

示例:显示Java.lang.Math.ulp()方法的工作。

// Java program to demonstrate working
// of java.lang.Math.ulp() method
import java.lang.Math;
  
class Gfg {
  
    // driver code
    public static void main(String args[])
    {
        double a = 34.543;
  
        // Input positive double value
        // Output ulp(a)
        System.out.println(Math.ulp(a));
  
        // Input negative double value
        // Output ulp(-a)==ulp(a)
        System.out.println(Math.ulp(-a));
  
        double b = 0.0 / 0;
  
        // Input NaN, Output Nan
        System.out.println(Math.ulp(b));
  
        float c = -0.0f;
  
        // Input negative zero
        // Output  Float.MIN_VALUE.
        System.out.println(Math.ulp(c));
  
        float d = -1.0f / 0;
  
        // Input negative infinity
        // Output  positive infinity.
        System.out.println(Math.ulp(d));
  
        double e = Double.MAX_VALUE;
  
        System.out.println(Math.ulp(e));
    }
}

输出:

7.105427357601002E-15
7.105427357601002E-15
NaN
1.4E-45
Infinity
1.9958403095347198E292