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 所涵盖的范围。