C#中为了防止DivideByZeroException,人们经常写这样的东西

double f(double x) {
  if (x != 0.0) return 1000.0/x;
  else return 0.0;
}

鉴于浮点运算总是不精确,我想知道是否可以保证此函数永远不会抛出 DivideByZeroException。

最佳答案

documentation 说:



所以是的,“保证这个函数永远不会抛出 DivideByZeroException。” - 即使没有任何检查,但即使您检查 0.0 ,它也可能返回正无穷大、负无穷大或非数字 (NaN),例如,当您将相当大的值除以非常小的值时,结果超出了 double 所涵盖的范围。

10-08 12:57