我目前需要一个epsilon http://en.wikipedia.org/wiki/Machine_epsilon类型的double
(首选 java 库中的常量,而不是自己的实现/定义)
据我所知Double
has MIN_VALUE
and MAX_VALUE
作为静态成员。
为什么没有EPSILON
?
什么会是epsilon<double>
be?
有什么区别吗std::numeric_limits< double >::epsilon()
?
Epsilon:1 与该数据类型可表示的大于 1 的最小值之间的差。
我假设您指的是值误差意义上的 epsilon 。 IEthis http://en.wikipedia.org/wiki/Machine_epsilon.
如果是这样,那么在 Java 中它被称为 ULP(最后一位单位)。您可以通过使用找到它java.lang.Math
包和Math.ulp()
方法。看java文档在这里 http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#ulp(double).
该值不存储为静态成员,因为它会根据您所关心的双精度值而有所不同。
EDIT:根据现在问题中OP对epsilon的定义,值1.0的双精度数的ULP是2.220446049250313E-16,表示为双精度数。 (即返回值Math.ulp(1.0)
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)