有关确定double类型数值是否为零的建议吗?
您需要设置一个与您正在解决的问题兼容的epsilon。然后,您可以使用类似以下的内容:
bool DoubleEquals(double value1, double value2)
{
return Math.Abs(value1 - value2) < epsilon;
}
编辑
既然您想知道如何确定一个双精度浮点数是否为零,您可以使用以下函数:
if (!DoubleEquals(value, 0)) { /* do your not zero things */ }
我认为这种方法更好,因为它更具通用性。
您好,这取决于您正在进行的计算类型。有时会得到一个非常接近0但不完全为0的非常小的数字。
我通常会这样做:
if (Math.Abs(MyNumber) < 1e-10)
if ( Math.Abs(doubleNumber) > Math.Pow(1,-9) ) //doubleNumber not zero.
这已经足够检查双精度浮点数是否为零了
double d = 0.00000005;
bool l = d.Equals(0);