NSString - doubleValue从可行的NSString返回NaN

时间:2009-12-08 19:40:38

标签: iphone objective-c

好的,所以我从NSMutableArray中提取NSString并将其存储在NSString中:

entry = [NSString stringWithString:[array objectAtIndex:row]];

这包含在几个不同的for循环中。然后我将它转换为doubleValue并将其存储在一个数字中,但显然[entry doubleValue]只返回一个NaN而不是一个数字。我在NSLog中输入'entry'和'[entry doubleValue]'。每次我运行这个我得到相同的结果:

entry: 22.414 value: nan

有什么想法吗?谢谢!

4 个答案:

答案 0 :(得分:3)

您可以检查以确保entry

中没有空格或非打印字符

最简单的方法:

NSLog(@"%@", [entry dataUsingEncoding:NSUTF8StringEncoding]);

答案 1 :(得分:2)

是的,我会说这可能是一些非印刷字符。这对我来说很好:

NSString *test = @"22.414";
NSLog(@"doubleValue: %f", [test doubleValue]);

答案 2 :(得分:1)

如果您确定字符串中没有任何其他字符,请查看NSScanner类。它通常在阅读字符串方面做得更好。

答案 3 :(得分:1)

可能是,您设置了一种系统语言,其中区域设置表示您正在使用例如逗号而不是点作为十进制分隔符。我不知道这是否会发生双重值,但我遇到了NSNumberFormater的问题。