就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
10年前关闭。
为什么不是 1/0 == Inf
每种语言?这不是数学上最正确的 react 吗?
我熟悉的所有语言都能够表达 Infinite 和 NaN 值,那么为什么他们会选择抛出错误或返回 NaN 呢?仅仅是为了让科学应用程序开发人员的生活更艰难吗? ;-)
更新:我们应该关闭这个问题,因为我错误地认为 1f/0f == Float.NaN
在 java 。但我错了:它确实正确返回 Float.Infinity
.那是我的主要困惑;某些语言抛出错误的事实是可以理解的,只要没有语言返回 NaN。
最佳答案
除了 1/0 == inf 在数学上高度可疑这一事实之外,它在大多数编程语言中不起作用的简单原因是 1 / 0
几乎普遍地执行整数除法(存在异常(exception))。
结果是一个整数,根本无法在整数中编码“无穷大”。有浮点数,这就是为什么在大多数语言中浮点除法实际上会产生无限值。
NaN 也是如此:虽然 IEEE 浮点标准定义了表示 NaN 值的位模式,但整数没有这样的值;因此,这些值根本不能表示为整数。
关于math - 除以零 : Infinite, NaN,还是零除法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6563788/