加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 18:14:24 所属栏目:百科 来源:网络整理
导读:根据 http://msdn.microsoft.com/en-us/library/system.dividebyzeroexception.aspx 当你将它们除以0时,只有Int和Decimal会抛出DivideByZeroException,但是当你将浮点除以0时,结果是无穷大,负无穷大或NaN.为什么是这样?什么是结果是无限,-ve无限或NaN的一些
根据 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标准的开发人员正在考虑更广泛的实现(例如,嵌入式系统),这些设施不可用,或者不可取.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读