x!= 0.0是对DivideByZeroException的安全检查吗?

Kit*_*sto 4 c# divide-by-zero

为了防止C#中的DivideByZeroException,人们经常会写出类似的东西

double f(double x) {
  if (x != 0.0) return 1000.0/x;
  else return 0.0;
}
Run Code Online (Sandbox Code Playgroud)

鉴于浮点运算总是有不精确的事实,我想知道是否保证这个函数永远不会抛出DivideByZeroException.

Jon*_*eet 8

DivideByZeroException无论如何,它都不会抛出,因为你正在处理double算术 - 它只会返回无穷大.其他值可能返回无穷大,例如f(double.Epsilon).