【问题标题】:Why it throws "Floating Point Exception" if I divide a floating number by zero?如果我将浮点数除以零,为什么会引发“浮点异常”?
【发布时间】:2020-12-03 02:50:12
【问题描述】:

如标题。

据我所知,如果我们尝试将浮点数除以零,结果实际上可能是“∞”,即无穷大。它也可以用浮点数格式表示,如下所示。那么,为什么 Linux 系统需要引发异常,而不是按照我的预期去做呢? (由底层系统引发异常)

【问题讨论】:

标签: linux


【解决方案1】:

除以 0 不一定是无穷大。有一个很好的 numberphile 视频。

在这里更重要的是,IEEE 754 浮点标准(这是大多数语言/cpu 使用的)规定除以 0 应该导致 NaN,而许多编程语言只是将其变成错误。

这不是 linux 特定的。我什至不认为 Linux 本身可以引发异常,所以这一定是更高级别的语言。

【讨论】:

  • 似乎对于 IEEE 浮点数,有限非零浮点数除以 0 是明确定义的,并导致 +infinity(如果值大于零)或 -infinity(如果值小于零)。 0.0/0.0 的结果是 NaN。
猜你喜欢
  • 1970-01-01
  • 2013-05-31
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多