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;

latitudelongitude 是浮点类型,从数据库中获取 但是当我转换为浮点值时,我得到了错误的值:

float latitude = [myLatString floatValue];

结果:

myLatString : 10.861714

浮点值:10.8617144

所以我无法使用上述值加载到我的地图视图。

我在谷歌上搜索,有人说使用NSDecimalNumber,但是如何使用NSDecimalNumberCLLocation??

请帮帮我

【问题讨论】:

您期望得到什么?为什么您将数字作为字符串存储在数据库中,而不仅仅是数字? 【参考方案1】:

使用NSDecimalNumberNSString 转换为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

将 NSDecimalNumber 转换为字符串

iOS 人民币单位转换,元 转 万元 转 亿,等等。

NSDecimalNumber 四舍五入在 iOS 11 中不起作用

iOS 货币输入栏

如何在不损失精度的情况下解码 NSDecimalNumber?