[C#]浮点数除零不抛出异常的解决办法_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > [C#]浮点数除零不抛出异常的解决办法

[C#]浮点数除零不抛出异常的解决办法

 2013/8/22 11:58:44  合法技术宅  博客园  我要评论(0)
  • 摘要:解决方法://运算前先检查被除数是否为零,为零则手动抛出除零异常if(numberB==0.0){thrownewDivideByZeroException();}Result=numberA/numberB;发现新的解决办法会再补充。最近在学设计模式,照着书上做了个计算器的例子,发现了这个问题。MSDN上的解释是:“根据IEEE754算法规则,用零除浮点值将产生正无穷大、负无穷大或非数字(NaN)。浮点运算永远不会引发异常。有关更多信息,请参见Single和Double
  • 标签:C# 解决办法 解决 异常

解决方法

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

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

 

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

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

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

发表评论
用户名: 匿名