铸造NaN值

时间:2014-03-23 13:39:38

标签: java floating-point nan

我只是了解到NaNunordered,我只是在玩FloatDouble NaN,我尝试了以下代码段:

System.out.println("Comparing with isNaN method: " + Float.isNaN((float)Double.NaN));

我得到一个问题,如果NaN不是数字那么为什么允许铸造NaN。我想知道Architectural Levelcast NaN value发生了什么。

2 个答案:

答案 0 :(得分:2)

在javadoc中你可以看到Double.NaN是Double类型的常量,所以你可以施放! Double.Nan是有效数字。 http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html

答案 1 :(得分:0)

投射时,一种类型的NaN映射到另一种类型的NaN。这是由CPU完成的,所以你在Java中看到的是“架构级”