【问题标题】:What is the Objective-C equivalent of Double.NaN in Java?Java中Double.NaN的Objective-C等价物是什么?
【发布时间】:2011-07-21 14:48:22
【问题描述】:

Java 中 Double.NaN 的 Objective-C 等价物是什么?我有一个返回双精度的函数,但它有两种情况可以返回Double.NaN。我将如何在 Objective-C 中实现它?

【问题讨论】:

  • 你的函数返回原始double还是对象NSNumber

标签: java objective-c floating-point nan porting


【解决方案1】:
double nan = NAN;

很简单。 :)

【讨论】:

    【解决方案2】:
    #include <math.h>
    
    ...
    return NAN;
    

    就这么简单。如果由于某种原因你不能包含&lt;math.h&gt;,你也可以使用

    return __builtin_nan("");
    

    使用 GCC 或 clang。

    顺便说一句,就像 Objective-C 的大多数低级语言特性一样,它直接继承自 C。C 规范的相关部分是 §7.12:

    当且仅当实现支持浮点类型的静默 NaN 时,才会定义宏 NAN。它扩展为一个 float 类型的常量表达式,表示一个安静的 NaN。

    在学习 Objective-C 时,请记住,每个 C 程序都是 Objective-C 程序,使用 C 语言特性来解决问题并没有错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 2013-12-01
      • 2015-07-30
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多