我如何过滤掉 NaN 值并将其替换为另一个值

Dev*_*rer 5 c# listview nan

iv'e尝试使用for循环来过滤掉null和nan值,但nan值仍然被添加到列表视图中。这只是完成计算的部分。

double rs1 = (qz1 * c11) + (asg1 * c22) + (sw1 * c33) + (prj1 * c44) + (pxm1 * c55) + (atti1 * c66);
if(rs1 != double.NaN || rs1 != null)
{
lst.SubItems.Add(Math.Round(rs1, 2).ToString());
}
else
{
lst.SubItems.Add("0");
}
Run Code Online (Sandbox Code Playgroud)

Mzf*_*Mzf 5

使用IsNan静态函数,请阅读此处

你的代码应该是这样的

if(!Double.IsNaN(rs1)  || rs1 != null)
Run Code Online (Sandbox Code Playgroud)

NaN 与 NaN 总是返回 false,这是 MSDN 关于 NaN 的内容

两个 NaN 值被视为彼此不相等。因此,无法通过使用等式运算符将某个值与另一个等于 NaN 的值进行比较来确定该值是否不是数字