C# 确定双精度不是零的最佳方法是什么

C# 确定双精度不是零的最佳方法是什么,c#,.net,C#,.net,关于确定双精度不是零的任何建议?您必须设置一个与您正在解决的问题兼容的ε。然后,你可以使用类似 if ( Math.Abs(doubleNumber) > Math.Pow(1,-9) ) //doubleNumber not zero. bool DoubleEquals(double value1, double value2) { return Math.Abs(value1 - value2) < epsilon; } 我觉得这个方法更好,因为它更通用。嗨,这取决

关于确定双精度不是零的任何建议?

您必须设置一个与您正在解决的问题兼容的ε。然后,你可以使用类似

if ( Math.Abs(doubleNumber) > Math.Pow(1,-9) ) //doubleNumber not zero.
bool DoubleEquals(double value1, double value2)
{
    return Math.Abs(value1 - value2) < epsilon;
}

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

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

我通常这样做

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

希望它有帮助

这足够检查double是否为零

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

啊。我认为1E-10是我的C++语言。C#将是数学。正如枪手所说,Pow(1,-10)
        double d = 0.00000005;
        bool l =  d.Equals(0);