【问题标题】:Casting NaN value铸造 NaN 值
【发布时间】:2014-04-30 18:16:12
【问题描述】:

我只是了解到NaNunordered,我只是在玩FloatDouble NaN,然后我尝试了以下 sn-p:

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

我有一个问题,如果 NaN 不是非数字,那么为什么允许转换 NaN。我想知道当我cast NaN valueArchitectural Level 会发生什么。

【问题讨论】:

    标签: java floating-point nan


    【解决方案1】:

    在 javadoc 中,您可以看到 Double.NaN 是 Double 类型的常量,因此您可以强制转换! Double.Nan 是一个有效数字。 http://docs.oracle.com/javase/7/docs/api/java/lang/Double.html

    【讨论】:

      【解决方案2】:

      当你进行转换时,一种类型的 NaN 会映射到另一种类型的 NaN。这是由 CPU 完成的,因此您在 Java 中看到的是“架构级别”发生的情况

      【讨论】:

        猜你喜欢
        • 2021-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-31
        相关资源
        最近更新 更多