【问题标题】:How to check if NSMutableArray object contains NaN [duplicate]如何检查 NSMutableArray 对象是否包含 NaN [重复]
【发布时间】:2013-10-13 22:14:18
【问题描述】:

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

【问题讨论】:

  • 你要检查数组是否包含任何对象!!!???
  • "如果数组对象为空"是什么意思
  • @MartinR 对不起,勘误错误!

标签: iphone objective-c nsmutablearray ios7


【解决方案1】:

你也可以使用

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

【讨论】:

    【解决方案2】:

    试试isnan函数

    迭代你的数组并进行检查

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

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

    【讨论】:

    • 对,让我纠正一下
    • isnan([[array objectAtIndex:i] floatValue]) 就像一个魅力!没有 math.h 导入。
    【解决方案3】:

    做这样的事情:

    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); 
    

    【讨论】:

      【解决方案4】:
      NSNumber *num = //your number;
      float value = [num floatValue];
      if (isnan(value))
      {
          NSLog(@"is nan");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 2019-01-12
        • 2019-10-01
        • 2022-11-09
        • 2019-08-24
        相关资源
        最近更新 更多