Objective-C:int不能是NAN?

Mai*_*639 0 double int objective-c nan ios

似乎Objective-C中的int不能是NAN.这种比较返回false.

int i = NAN;
NSLog(@"isNan: %@", (isnan(i)) ? @"YES" : @"NO");
Run Code Online (Sandbox Code Playgroud)

有没有办法将int设置为NAN,还是我必须使用double?

double d = NAN;
NSLog(@"isNan: %@", (isnan(d)) ? @"YES" : @"NO");
Run Code Online (Sandbox Code Playgroud)

它有双重功能.

一二三*_*一二三 7

NaN是一个特定于浮点数(floatdoubleC)在内部表示的方式的值(IEEE 754).Is不适用于整数数据类型,因为它们可能以完全不同的方式表示.

作为一种变通方法,您可能会看到人们使用单独的布尔标志来指示值是有效还是极值INT_MIN/ INT_MAX.尽管如此,这些与NaN确保有效价值一样好.