我曾经编译过错误地尝试添加数字和Double.NaN的代码。我想知道它是不是抛出了一个不会被捕获的异常?有谁知道这种情况是如何处理的吗?
谢谢。
发布于 2008-12-12 14:52:08
向NaN添加一个数字将得到NaN。预计它不会导致异常。我知道这符合IEEE754标准。
发布于 2008-12-12 15:09:24
要回答Steve B的问题:
如果你有无限的存储空间,POSITIVE_INFINITY是你能存储的最大正数。没有这种奢侈,我们必须使用像1.0 / 0.0这样的结构,它做得很好。NEGATIVE_INFINITY也是如此,但是最大的负数。
NaN通常被定义为0.0 / 0.0,因为没有像0/0这样的数字,所以完全符合NaN的条件。
发布于 2008-12-12 14:55:42
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;
https://stackoverflow.com/questions/362958
复制相似问题