【发布时间】:2021-04-14 13:27:45
【问题描述】:
我这里有这段代码:
public double ProgressBar
{
get
{
return ((double)Completed / Progress);
}
}
但当两个值(已完成和进度)均为 0 时,它总是返回 NaN。
我也试过了:
public double ProgressBar
{
get
{
return ((double)Completed / (double)Progress);
}
}
同样的结果 NaN
我做错了什么?
【问题讨论】:
-
哈哈,是的,@MitchWheat 说你可能除以 0。
-
0 / 0 = NaN ... X / 0 = NaN
-
返回(进度 == 0)? 0 : ((double)Completed / Progress);
-
@user979331 因为当除以零时得到 0?抱怨缺少 DivideByZeroException 是有道理的……但结果是要求为 0????
-
@MitchWheat 明确地说,如果 X 为零,则 X/0 为 NaN,否则为 +ve 或 -ve 无穷大。 (我意识到您的评论是假设 X 为零,但我只是想为其他读者澄清一下)
标签: c#