Java中Double.NaN在Objective-C中的等价物是什么?

5

在Objective-C中,与Java中的Double.NaN相对应的是什么?我有一个返回double类型的函数,但它有两种情况可以返回Double.NaN。在Objective-C中,我该如何实现它呢?


你的函数返回一个基本类型的 double 还是一个对象 NSNumber - falconcreek
2个回答

11
#include <math.h>

...
return NAN;

就是这么简单。如果由于某些原因无法包含<math.h>,您也可以使用

return __builtin_nan("");

可以使用GCC或clang来实现。

值得一提的是,像Objective-C的大多数低级语言功能一样,这直接继承自C语言。 C规范中相关的部分为§7.12:

如果实现支持float类型的静态NaN,则定义宏NAN。 它扩展为表示静态NaN的float类型的常量表达式。

学习Objective-C时,请记住,每个C程序都是一个Objective-C程序,并且使用C语言功能解决问题没有任何问题。


11
double nan = NAN;

非常简单。 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接