gpt4 book ai didi

c# - 为什么 int 和 decimal 会抛出 DivideByZeroException 但 float 不会?

转载 作者:太空狗 更新时间:2023-10-29 20:49:14 25 4
gpt4 key购买 nike

根据 http://msdn.microsoft.com/en-us/library/system.dividebyzeroexception.aspx只有 Int 和 Decimal 在将它们除以 0 时会抛出 DivideByZeroException,但是当您将 float 除以 0 时,结果为无穷大、负无穷大或 NaN。为什么是这样?还有哪些结果是 +ve 无穷大、-ve 无穷大或 NaN 的示例?

最佳答案

IEEE 标准委员会 felt that exception handling was more trouble than it was worth ,对于可能遇到此类 float 学问题的代码范围:

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 标准的开发人员正在考虑更广泛的实现(例如嵌入式系统),在这些设施不可用或不理想的情况下。

关于c# - 为什么 int 和 decimal 会抛出 DivideByZeroException 但 float 不会?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18809074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com