【问题标题】:Can float (or double) be set to NaN?可以将浮点(或双精度)设置为 NaN 吗?
【发布时间】:2011-11-17 04:02:17
【问题描述】:

注意:类似于Can an integer be NaN in C++?

我知道这没有什么实际用途,但可以将 floatdouble 设置为 NaN 吗?

【问题讨论】:

  • 我不会说没有什么实际用途。例如,我使用这种方法在双精度表中指定失败的结果。

标签: java floating-point double nan


【解决方案1】:

Float 对象包含一个静态值,它是一个float 类型,称为NaN

所以

float myFloat = Float.NaN;

给你你的要求。

http://download.oracle.com/javase/6/docs/api/java/lang/Float.html#NaN

【讨论】:

  • 我认为这只是包装类的常量表示(但常量仍然是有效数字)?我正在寻找将 floatdouble 设置为 NaN,从而使其无法在任何算术中使用。
  • 不,常量是原始类型的。
  • 好的,抱歉,您在我完成此评论之前进行了编辑,感谢您的澄清。
【解决方案2】:

是的

float f = Float.NaN;

请参阅the doc 了解更多信息。请注意,如果要将数字与 NaN 进行比较,则应使用 isNan()

尽管您有上述问题,但这确实有实际目的。您可以使用它来指示尚未设置/提供的值。

【讨论】:

    【解决方案3】:

    当然! NaN 是 Fl​​oat 和 Double 类中的静态常量。

    double x = Double.NaN;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2021-07-02
      相关资源
      最近更新 更多