[C#]浮点数除零无法捕获异常的解决办法
摘要:
解决方法://运算前先检查被除数是否为零,为零则手动抛出除零异常 if (numberB == 0.0) { throw new DivideByZeroException(); }Result = numberA / numberB;发现新的解决办法会再补充。最近在学设计模式,照着书上做了个计算器的例子,发现了这个问题。MSDN上的解释是:“根据 IEEE 754 算法规则,用零除浮点值将产生正无穷大、负无穷大或非数字 (NaN)。浮点运算永远不会引发异常。 有关更多信息,请参见Single和Double。”现在没心情去仔细研究 IEEE 754 算法,等以后遇到问题再去研究。 阅读全文
posted @ 2013-08-22 10:46 王彤辉 阅读(1401) 评论(3) 推荐(1) 编辑