【发布时间】:2012-11-08 22:52:37
【问题描述】:
我有一个 XML 文件中的经度和纬度列表。我可以将 lat 和 lon 打印为字符串,但是当我将字符串转换为双精度时,我得到 0。
这是我的代码:
NSString *latstring = [[NSString alloc] initWithString:theList.lat] ;
NSString *lonstring = [[NSString alloc] initWithString:theList.lon];
NSLog(@"latstring: %@, lonstring: %@", latstring, lonstring);
double latdouble = [latstring doubleValue];
double londouble = [lonstring doubleValue];
NSLog(@"latdouble: %g, londouble: %g", latdouble, londouble);
当我记录 'latstring' 和 'lonstring' 时,我得到正确的坐标,但是当我记录 'latdouble' 和 'londouble' 时,我得到 0。
我需要 lat 和 lon 值作为双精度值,因此我可以在地图视图中使用它们,因为它不允许我使用字符串作为坐标。
对此可能有一个非常简单的解释,但是我对objective-c还很陌生,似乎无法找到解决方案。
非常感谢任何帮助。
【问题讨论】:
-
NSLog(@"latstring: %@, lonstring: %@", latstring, lonstring);实际显示的是什么? -
控制台显示:2012-07-25 12:10:28.720 XMLTest2[4851:707] latstring: 55.035966, lonstring: -1.710799 2012-07-25 12:10:28.721 XMLTest2[4851: 707] latdouble: 0, londouble: 0
-
转换格式肯定没问题。例如,
NSLog(@"lat: %g, lon: %g", [@"55.035966" doubleValue], [@"-1.710799" doubleValue]);工作正常(不包括舍入)。尝试在双重转换之前记录字符串的长度,以查看是否有任何不可打印的字符导致问题。 -
当我记录长度时:NSLog(@"latstring length: %i, lonstring length: %i", latstring.length, lonstring.length);我得到:'latstring 长度:10,lonstring 长度:10'
-
正确吗?我不知道是否应该有前导空格(应该可以)或其他一些额外的字符。
标签: objective-c string double coordinates