解决方法:

//运算前先检查被除数是否为零,为零则手动抛出除零异常
 if (numberB == 0.0)
 {
      throw new DivideByZeroException();
 }
Result = numberA / numberB;

发现新的解决办法会再补充。

 

最近在学设计模式,照着书上做了个计算器的例子,发现了这个问题。MSDN上的解释是:

“根据 IEEE 754 算法规则,用零除浮点值将产生正无穷大、负无穷大或非数字 (NaN)。浮点运算永远不会引发异常。 有关更多信息,请参见SingleDouble。”

现在没心情去仔细研究 IEEE 754 算法,等以后遇到问题再去研究。

相关文章:

  • 2022-12-23
  • 2021-08-19
  • 2021-12-28
  • 2021-09-15
  • 2021-09-27
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-04-30
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案