我有一个正在执行 LINQ 操作的 double[]
:
MD = MD.Select(n => n * 100 / MD.Sum()).ToArray();
在某些情况下,MD
的所有元素都为 0,则 Sum
也为零。然后 0 * 100 = 0/0
,但它没有给出被零除异常或任何异常。为什么会这样?
最佳答案
试试这个:
double x = 0.0;
double y = 1.0;
double z = y / x;
这也不会抛出异常:它会将 z
保留为正无穷大。这里没有特定于 LINQ 的内容 - 它只是 IEEE-754 浮点算术行为。
在您的例子中,您将零除以零,所以您最终得到的不是数字。
关于c# - 为什么不引发 "Divide by Zero"或任何其他异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10242441/