0

我有一个具有 1 个浮点值和 4 个 nan 值的 NSMutableArray。如果数组对象是nan,我想执行一些操作。如何编写 if 条件?

4

4 回答 4

4

试试isnan函数

迭代你的数组并检查

isnan([[Array objectAtIndex:i] floatValue])

(不要忘记添加 math.h 库)

于 2013-10-07T11:09:12.060 回答
1
NSNumber *num = //your number;
float value = [num floatValue];
if (isnan(value))
{
    NSLog(@"is nan");
}
于 2013-10-07T11:12:20.967 回答
1

做这样的事情:

NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithFloat:1.0]];
[array addObject:[NSNull null]];
[array addObject:[NSNull null]];
[array addObject:[NSDecimalNumber notANumber]];


BOOL foundNull = NO;
for (id value in array) {
    if (!value || value == [NSNull null]) {
        foundNull = YES;
    } else if ([value isKindOfClass:[NSDecimalNumber class]]) {
        if ([value isEqualToNumber:[NSDecimalNumber notANumber]]) {
            foundNull = YES;
        }
    }
}

NSLog(@"Found null/NaN: %i", foundNull); 
于 2013-10-07T11:20:39.030 回答
0

你也可以使用

[NSDecimalNumber notANumber]方法来比较和检查这是否是一个有效的数字。

于 2013-10-07T11:29:11.757 回答