Java Math.ulp() 方法
java.lang.Math.ulp() 返回参数的ulp的大小。ulp是最后一个单位。float或double值的ulp是给定值与大小较大的下一个值之间的正距离。
1 语法
public static double ulp(double x)
public static float ulp(float x)
2 参数
x :要返回其ulp的浮点值
3 返回值
它返回参数ulp的大小。
- 如果参数为正值或负值double或float值,则此方法将返回输出。
- 如果参数为正Infinity或负Infinity,则此方法将返回正Infinity。
- 如果参数为正数或负零,则此方法将返回Double.MIN_VALUE。
- 如果参数为±Double.MAX_VALUE,则此方法将返回等于2971的结果。
- 如果参数为±Float.MAX_VALUE,则此方法将返回等于2104的结果。
- 如果参数为NaN,则此方法将返回NaN。
4 示例1
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
public class Demo
{
public static void main(String[] args)
{
double a = 8.1;
// 输入正整数值,输出ulp(a)
System.out.println(Math.ulp(a));
}
}
输出结果为:
1.7763568394002505E-15
5 示例2
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
public class Demo
{
public static void main(String[] args)
{
double a = -37.1;
// 输入负double值,输出ulp(-a)== ulp(a)
System.out.println(Math.ulp(a));
}
}
输出结果为:
7.105427357601002E-15
6 示例3
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
public class Demo
{
public static void main(String[] args)
{
float a = -1.0f / 0;
// 输入负无穷大,输出正无穷大
System.out.println(Math.ulp(a));
}
}
输出结果为:
Infinity
7 示例4
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
public class Demo
{
public static void main(String[] args)
{
double a = 0.0;
// 输入零,输出Double.MIN_VALUE
System.out.println(Math.ulp(a));
}
}
输出结果为:
4.9E-324
8 示例5
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
public class Demo
{
public static void main(String[] args)
{
double a = Double.MAX_VALUE ;
// 输入Double.MAX_VALUE,输出2的971的幂
System.out.println(Math.ulp(a));
}
}
输出结果为:
1.9958403095347198E292
9 示例6
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
public class Demo
{
public static void main(String[] args)
{
float a = Float.MAX_VALUE ;
// 输入Float.MAX_VALUE,输出2的104的幂
System.out.println(Math.ulp(a));
}
}
输出结果为:
2.028241E31
热门文章
优秀文章