尝试做一些简单的事情,但是对我来说根本行不通。
代码:
let long = index["Longitude"] as! String
let lat = index["Latitude"] as! String
print(long as Any)
print(lat as Any)
let doubleLong = Double(long)
print(doubleLong as Any)
调试输出:
-85.1113644443208
32.880541654362
nil
^^^为什么这么零?我将添加这是从JSON响应中提取的。也许这与它有关。
请注意,数据中最有可能存在额外的空间:
print(Double("-85.1113644443208")) // => Optional(-85.111364444320799)
print(Double("-85.1113644443208 ")) // => nil
print(Double(" -85.1113644443208")) // => nil
尝试先修剪空间:
let doubleLong = Double(long.trimmingCharacters(in: CharacterSet.whitespaces))
或使用NumberFormatter
进行解析:
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.locale = Locale(identifier: "en_US_POSIX")
print(numberFormatter.number(from: "-85.1113644443208") as Double?) // => Optional(-85.111364444320799)
print(numberFormatter.number(from: " -85.1113644443208") as Double?) // => Optional(-85.111364444320799)
print(numberFormatter.number(from: "-85.1113644443208 ") as Double?) // => Optional(-85.111364444320799)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句