Java Math ulp()方法及实例
java.lang.Math.ulp()是一个内置的java方法,它返回参数的ulp的大小。ulp代表最小精度单位。它计算给定的双数或浮点数与
双数或浮点数之间的距离。
参数可以是两种类型。
- LUL(float f) : 它需要输入浮点类型。
- ulp(double d) 。 它接受双倍类型的输入。
注意 :
- 如果参数是NaN,输出是NaN。
- 如果参数是正或负的双数或浮点数,ulp(-arg)和ulp(arg)的输出是一样的。
- 如果参数是正的或负的零,输出为Double.MIN_VALUE或Float.MIN_VALUE。
- 如果参数是正的或负的无穷大,输出是正的无穷大。
- 如果参数是正的或负的Double.MAX_VALUE或Float.MAX_VALUE,对于double类型,输出为2971 ,对于float类型,输出为2104 。
语法 :
public static dataType ulp(dataType g)
参数:
g:要返回其ulp的参数。
返回。
该方法返回参数的ulp的大小。
例子:展示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