IOS中如何使用NSDecimalNumber转换经纬度
Posted
技术标签:
【中文标题】IOS中如何使用NSDecimalNumber转换经纬度【英文标题】:How to use NSDecimalNumber to convert latitude and longitude in IOS 【发布时间】:2014-12-26 09:52:01 【问题描述】:我想在地图上显示我的位置,我正在使用CLLocation
这样做
这是我的代码:
CLLocationCoordinate2D coordinate;
coordinate.latitude = latitude;
coordinate.longitude = longitude;
latitude
和 longitude
是浮点类型,从数据库中获取
但是当我转换为浮点值时,我得到了错误的值:
float latitude = [myLatString floatValue];
结果:
myLatString : 10.861714
浮点值:10.8617144
所以我无法使用上述值加载到我的地图视图。
我在谷歌上搜索,有人说使用NSDecimalNumber
,但是如何使用NSDecimalNumber
和CLLocation
??
请帮帮我
【问题讨论】:
您期望得到什么?为什么您将数字作为字符串存储在数据库中,而不仅仅是数字? 【参考方案1】:使用NSDecimalNumber
将NSString
转换为float
。
NSString *myLatString = @"10.8617144";
NSDecimalNumber *decimalPoint = [[NSDecimalNumber alloc] initWithString: myLatString];
float latitude = decimalPoint.floatValue;
【讨论】:
真的,只是投了反对票。对于否决的选民,您是否阅读了此处要求的 OP。如果您认为这是错误的答案,请发表评论。【参考方案2】:使用双打。经纬度为CLLocationDegree
,为双倍。
也最好使用CLLocationCoordinate2DMake:
CLLocationCoordinate2D loc = CLLocationCoordinate2DMake([myLatString doubleValue], [myLngString doubleValue]);
【讨论】:
以上是关于IOS中如何使用NSDecimalNumber转换经纬度的主要内容,如果未能解决你的问题,请参考以下文章
将 NSString 转换为 NSDecimalNumber