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