我有一个带有1个浮点值和4个纳米值的NSMutableArray。如果数组对象是nan,我想执行一些操作。我怎么写if条件?
答案 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]方法比较并检查这是否是有效数字。