确定双精度是否为零的最佳方法是什么

时间:2010-12-30 06:52:56

标签: c# .net

关于确定双倍的任何建议都不是零?

4 个答案:

答案 0 :(得分:6)

您必须设置与您正在解决的问题兼容的 epsilon 。然后,你可以使用像

这样的东西
bool DoubleEquals(double value1, double value2)
{
    return Math.Abs(value1 - value2) < epsilon;
}

修改
由于您询问了一种方法来确定double是否为零,因此您可以通过编写以下函数来使用此函数:

if (!DoubleEquals(value, 0)) { /* do your not zero things */ }

我觉得这种方法更好,因为它更通用。

答案 1 :(得分:3)

嗨取决于你正在做什么样的计算。有时你会得到一个非常小的数字,接近于0但不完全

我经常做

if (Math.Abs(MyNumber) < 1e-10)

希望有所帮助

答案 2 :(得分:0)

if ( Math.Abs(doubleNumber) > Math.Pow(1,-9) ) //doubleNumber not zero.

答案 3 :(得分:0)

这足以检查双倍是否为零

        double d = 0.00000005;
        bool l =  d.Equals(0);