json - 将 NSNumber 转换为 Double(CLLocationDegrees)

标签 json swift double nsnumber cllocation

我正在尝试将纬度和经度添加到 map 上的注释中。 我的数据是JSON类型

 "{\"lat\": 25.0437396, \"lng\": 121.5308224}"

我先把它转化成字典

["lat": 25.0437396, "lng": 121.5308224]

并使用字典中的值进行添加

var coordinate = CLLocationCoordinate2D()
let latNum = shopCoordinate["lat"] as! NSNumber
let lngNum = shopCoordinate["lng"] as! NSNumber
let lat = latNum as? Double
let lng = lngNum as? Double
coordinate.latitude = lat!
coordinate.longitude = lng!

但是Double类型的值会变成这样,不显示在 map 上

25.043739599999999, 121.53082240000001

我不能将它转换为其他类型,因为 CLLocationDegrees 接受 double 类型。这让我发疯。如果有人可以给我任何建议,我将非常感激。

最佳答案

为什么不直接将它转换为 Double 呢?

if let latNum = shopCoordinate["lat"] as? Double, let lngNum = shopCoordinate["lng"] as? Double {
    let coordinate = CLLocationCoordinate2D(latitude: latNum, longitude: lngNum)
}

关于json - 将 NSNumber 转换为 Double(CLLocationDegrees),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46740326/

相关文章:

java - spring restTemplate动态映射

json - SerializeJSON 不编码 ColdFusion 9 中的 UTF8 字符

json - Jolt Transformation - 替换 json 上的文本

Swift - 在讲话时改变音量

c++ - 如何将 2D vector 大小与操作系统内存地址限制进行比较?

c# - JavaScriptSerializer 可以排除具有空值/默认值的属性吗?

ios - swift 4 : unrecognized selector sent to instance ERROR

ios - View 随着延迟 swift 消失

c++ - 使用 double 的程序的意外行为

java - 为什么 float 有舍入误差?