如何检查NSMutableArray对象是否包含NaN

时间:2013-10-07 11:03:31

标签: iphone objective-c nsmutablearray ios7

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

4 个答案:

答案 0 :(得分:4)

尝试isnan功能

迭代你的数组并检查

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

(别忘了添加math.h库)

答案 1 :(得分:1)

NSNumber *num = //your number;
float value = [num floatValue];
if (isnan(value))
{
    NSLog(@"is nan");
}

答案 2 :(得分: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); 

答案 3 :(得分:0)

您也可以使用

[NSDecimalNumber notANumber]方法比较并检查这是否是有效数字。