我目前需要一个类型为double的
epsilon(首选是java库中的常量,而不是自己的实现/定义)
据我所见,Double有MIN_VALUE和MAX_VALUE作为静态成员.
为什么没有EPSILON?
什么是epsilon< double>是?
与std :: numeric_limits< double> :: epsilon()?
据我所见,Double有MIN_VALUE和MAX_VALUE作为静态成员.
为什么没有EPSILON?
什么是epsilon< double>是?
与std :: numeric_limits< double> :: epsilon()?
Epsilon:1与数据类型可表示的大于1的最小值之间的差值.
解决方法
我假定你的意思是在值的错误意义上的epsilon.即
this.
如果是这样,那么在Java中它被称为ULP(最后单位).您可以使用java.lang.Math包和Math.ulp()方法找到它.见javadocs here.
该值不会作为静态成员存储,因为它将根据您所关心的双倍而不同.
编辑:按照OP的定义,现在在这个问题上,值为1.0的双倍的ULP是2.220446049250313E-16表示为双倍. (即Math.ulp(1.0)的返回值))