Что такое Objective-C, эквивалентный Double.NaN в Java? - PullRequest
3 голосов
/ 23 марта 2011

Что такое эквивалент Objective C Double.NaN из Java? У меня есть функция, которая возвращает double, но в двух случаях она может возвращать Double.NaN. Как мне реализовать это в Objective-C?

Ответы [ 2 ]

11 голосов
/ 23 марта 2011
#include <math.h>

...
return NAN;

все просто. Если по какой-либо причине вы не можете включить <math.h>, вы также можете использовать

return __builtin_nan("");

с GCC или лязгом.

Кстати, как и большинство низкоуровневых языковых возможностей Objective-C, он наследуется непосредственно от C. Соответствующая часть спецификации C - §7.12:

Макрос NAN определяется тогда и только тогда, когда реализация поддерживает тихие NaN для типа с плавающей запятой. Он расширяется до постоянного выражения типа float, представляющего тихий NaN.

Когда вы изучаете Objective-C, помните, что каждая программа C является программой Objective-C, и нет ничего плохого в использовании возможностей языка C для решения вашей проблемы.

8 голосов
/ 23 марта 2011
double nan = NAN;

Довольно просто.:)

...