【发布时间】:2016-01-24 20:14:06
【问题描述】:
当我将 NSString 转换为浮点数时出现问题。我得到了零值,但为什么呢?
NSString *polylineStr = @"51.351305,-0.024239;51.374855,-0.092412";
NSArray *strPolylineArr = [polylineStr componentsSeparatedByString:@";"];
for ( NSString *str in strPolylineArr) {
NSArray *arr = [str componentsSeparatedByString:@","];
NSString *firstString = [arr firstObject];
NSLog(@"__str %@ float %f", [arr firstObject], [firstString floatValue]);
}
我的输出是
__str 51.351305 float 0.000000
__str 51.374855 float 51.374855
我发现第一个字符串有问题。
【问题讨论】:
-
查看这个答案。第一个字符串中可能有额外的字符。可能是 \x stackoverflow.com/questions/11624900/…
-
当我将您的代码复制粘贴到记事本中时,我在 51 和 39 的前面看到一个额外的字符。当我将粘贴复制到 cmets 时,它不会显示。检查您是否得到相同的结果,这可能是 floatvalue 返回 0 的原因
-
Yan,是的,我需要删除多余的字符,例如 replaceOccurrencesOfString:@"\x10" withString:@""
-
删除 "\x10" 或使用以下代码
标签: ios floating-point nsstring type-conversion