在Java中,如果在操作中使用Double.NaN会发生什么?

时间:2008-12-12 14:49:17

标签: java nan

我编译了错误地尝试添加数字和Double.NaN的代码。我想知道它是否会抛出一个未被捕获的异常?有谁知道这种情况是如何处理的? 感谢。

3 个答案:

答案 0 :(得分:7)

向NaN添加数字会产生NaN。预计不会引起异常。据我所知,这符合IEEE 754。

答案 1 :(得分:1)

回答Steve B的问题:

如果您拥有无限的存储空间,POSITIVE_INFINITY是您可以存储的最大正号。如果没有这种奢侈品,我们必须使用像1.0 / 0.0这样的结构。 NEGATIVE_INFINITY也是如此,但后面是最大的负数。

NaN通常被定义为0.0 / 0.0,因为没有这样的数字0/0,所以完全符合NaN。

答案 2 :(得分:0)

public static void main(String args[])
{
    Double d = Double.NaN + 1.0;
    System.out.println(d);
}

打印Double.Nan。任何人都可以解释源实现吗?

  public static final double POSITIVE_INFINITY = 1.0 / 0.0;
  public static final double NEGATIVE_INFINITY = -1.0 / 0.0;
  public static final double NaN = 0.0d / 0.0;