c# – 为什么int和decimal抛出DivideByZeroException但是浮点数没有?

前端之家收集整理的这篇文章主要介绍了c# – 为什么int和decimal抛出DivideByZeroException但是浮点数没有?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
根据 http://msdn.microsoft.com/en-us/library/system.dividebyzeroexception.aspx
当你将它们除以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标准的开发人员正在考虑更广泛的实现(例如,嵌入式系统),这些设施不可用,或者不可取.

原文链接:https://www.f2er.com/csharp/97901.html

猜你在找的C#相关文章