ulp()
方法ulp()方法在java.lang包中可用。
ulp()方法用于返回给定参数的ulp的大小,其中,给定值的ulp是浮点值与下一个幅度较大的值之间的正距离。
ulp()方法是静态方法,也可以使用类名进行访问。
ulp()方法不会引发任何异常。
语法:
public static float ulp(float value); public static double ulp(double value);
参数:
value –表示要返回其ulp的浮点/双浮点值。
返回值:
此方法的返回类型为float / double-返回ulp的大小。
注意:
如果我们传递“ NaN”,它将返回相同的值(即“ NaN”)。
如果我们传递无穷大(+ ve或–ve),它将返回无穷大。
如果传递零(0或-0),则返回“ Float.MIN_VALUE” /“ Double.MIN_VALUE”。
如果我们传递“ Float.MAX_VALUE”,则返回2 ^ 104;对于“ Double.MAX_VALUE”,则返回2 ^ 971。
ulp()
方法示例//Java程序演示的例子 //数学类的ulp(float fl)方法 public class UlpFloatTypeMethod { public static void main(String[] args) { //声明变量 float f1 = 0.0f; float f2 = -0.0f; float f3 = 7.0f / 0.0f; float f4 = -7.0f / 0.0f; float f5 = 1285.45f; //显示值 System.out.println("f1: " + f1); System.out.println("f2: " + f2); System.out.println("f3: " + f3); System.out.println("f4: " + f4); System.out.println("f5: " + f5); //在这里,我们将得到(Float.MIN_VALUE),因为 //我们正在传递参数(0.0) System.out.println("Math.ulp(f1): " + Math.ulp(f1)); //在这里,我们将得到(Float.MIN_VALUE),因为 //我们正在传递参数(-0.0) System.out.println("Math.ulp(f2): " + Math.ulp(f2)); //在这里,我们将得到(Infinity)因为 //我们正在传递参数(7.0 / 0.0) System.out.println("Math.ulp(f3): " + Math.ulp(f3)); //在这里,我们将得到(Infinity)因为 //我们正在传递参数(-7.0 / 0.0) System.out.println("Math.ulp(f4): " + Math.ulp(f4)); //在这里,我们将得到(2提升到104的幂) //因为我们要传递参数(1285.45) System.out.println("Math.ulp(f5): " + Math.ulp(f5)); } }
输出结果
E:\Programs>javac UlpFloatTypeMethod.java E:\Programs>java UlpFloatTypeMethod f1: 0.0 f2: -0.0 f3: Infinity f4: -Infinity f5: 1285.45 Math.ulp(f1): 1.4E-45 Math.ulp(f2): 1.4E-45 Math.ulp(f3): Infinity Math.ulp(f4): Infinity Math.ulp(f5): 1.2207031E-4
范例2:
//Java程序演示的例子 //数学类的ulp(float fl)方法 public class UlpFloatTypeMethod { public static void main(String[] args) { //声明变量 double d1 = 0.0; double d2 = -0.0; double d3 = 7.0 / 0.0; double d4 = -7.0f / 0.0; double d5 = 1285.45; //显示值 System.out.println("d1: " + d1); System.out.println("d2: " + d2); System.out.println("d3: " + d3); System.out.println("d4: " + d4); System.out.println("d5: " + d5); //在这里,我们将得到(Float.MIN_VALUE),因为 //我们正在传递参数(0.0) System.out.println("Math.ulp(d1): " + Math.ulp(d1)); //在这里,我们将得到(Float.MIN_VALUE),因为 //我们正在传递参数(-0.0) System.out.println("Math.ulp(d2): " + Math.ulp(d2)); //在这里,我们将得到(Infinity)因为 //我们正在传递参数(7.0 / 0.0) System.out.println("Math.ulp(d3): " + Math.ulp(d3)); //在这里,我们将得到(Infinity)因为 //我们正在传递参数(-7.0 / 0.0) System.out.println("Math.ulp(d4): " + Math.ulp(d4)); //在这里,我们将得到(2提升到971的幂) //因为我们要传递参数(1285.45) System.out.println("Math.ulp(d5): " + Math.ulp(d5)); } }
输出结果
E:\Programs>javac UlpMethod.java E:\Programs>java UlpMethod d1: 0.0 d2: -0.0 d3: Infinity d4: -Infinity d5: 1285.45 Math.ulp(d1): 4.9E-324 Math.ulp(d2): 4.9E-324 Math.ulp(d3): Infinity Math.ulp(d4): Infinity Math.ulp(d5): 2.2737367544323206E-13