math - 除以零 : Infinite, NaN,还是零除法错误?

标签 math programming-languages divide-by-zero

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,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/

相关文章:

python - 如何解决python中的同余系统?

math - 除法、余数和仅允许实数

matlab - 使用 MATLAB 将对数螺旋图像的白色部分转换为散点图

web - Dart 是如何实现横切关注点的?

python - 运行时警告 : divide by zero encountered in log (stats. boxcox)

java - 在图形代码中处理除以零

math - float 学运算是否被破坏?

c++ - 解析器问题 - Else-If 和函数声明

programming-languages - 对于编程语言来说,与 "natural language"的相似性是一个令人信服的卖点吗?

c++ - 为什么除法(?)会产生这个数字?