【问题标题】:Comprehensive list of ways to generate NaN in Java?在 Java 中生成 NaN 的方法的完整列表?
【发布时间】:2023-03-06 12:34:01
【问题描述】:

在我正在处理的项目中,我一直面临 NaN 导致异常的问题。我想知道是否有人可以提供一个 NaN 在 Java 中可能出现的所有可能方式的列表,这样我就可以在跟踪它时知道所有可能要寻找的东西。

【问题讨论】:

  • 您可以发布您的代码!我们可以解决这个问题,每个人都可以更轻松地以最佳方式帮助您。
  • 我有一个相当大的代码库,老实说我不确定哪些代码是相关的。

标签: java nan


【解决方案1】:

来源:https://stackoverflow.com/a/2887161/546060

NaN 由以下事件触发:

  • 复数值的结果
    • √x,其中 x 为负数
    • log(x) 其中 x 为负数
    • tan(x) 其中 x mod 180 为 90
    • asin(x) 或 acos(x),其中 x 在 [-1..1] 之外
  • 0/0
  • ∞/∞
  • ∞/−∞
  • −∞/∞
  • -∞/-∞
  • 0×∞
  • 0×−∞
  • 1
  • ∞ + (−∞)
  • (−∞) + ∞

【讨论】:

  • 很惊讶,当我早些时候试图弄清楚这一点时,我找不到那个线程。谢谢,这应该(希望)有助于找到问题。
【解决方案2】:

这里有一些:

Double.NaN + Double.NaN  ->  NaN
Float.NaN + 2.0  ->  NaN
Float.NaN * 3.0  ->  NaN
(0.0 / 0.0) * Float.POSITIVE_INFINITY  ->  NaN
Math.abs(0.0 / 0.0) -> NaN

取自here

【讨论】:

  • 嗯,当然以 NaN 开头的计算结果是 NaN。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2018-03-11
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多