根据
http://msdn.microsoft.com/en-us/library/system.dividebyzeroexception.aspx
当你将它们除以0时,只有Int和Decimal会抛出DivideByZeroException,但是当你将浮点除以0时,结果是无穷大,负无穷大或NaN.为什么是这样?什么是结果是无限,-ve无限或NaN的一些例子?
当你将它们除以0时,只有Int和Decimal会抛出DivideByZeroException,但是当你将浮点除以0时,结果是无穷大,负无穷大或NaN.为什么是这样?什么是结果是无限,-ve无限或NaN的一些例子?
解决方法
IEEE标准委员会
felt that exception handling was more trouble than it was worth,针对可能遇到浮点数学这类问题的代码范围:
Traps can be used to stop a program,but unrecoverable situations are extremely rare.
[…]
Flags offer both predictable control flow and speed. Their use requires the programmer be aware of exceptional conditions,but flag stickiness allows programmers to delay handling exceptional conditions until necessary.
对于习惯于异常处理的语言的开发人员来说,这可能看起来很奇怪,比如C#. IEEE 754标准的开发人员正在考虑更广泛的实现(例如,嵌入式系统),这些设施不可用,或者不可取.