gpt4 book ai didi

xcode - 在 Swift 中将字符串转换为 double 值 (Xcode v 7.0.1)

转载 作者:行者123 更新时间:2023-11-30 10:10:43 25 4
gpt4 key购买 nike

我在 Swift 中将 String 转换为 Double 时遇到了令人惊讶的困难。只是为了让您大致了解我正在做的事情,我正在解析一个 XML 文件并从某些元素中检索值。代码如下所示,

var lat = ""
var lati = 0.0

func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {

if elementName == "lat" {
self.lat = foundCharacters
self.lati = (self.lat as NSString).doubleValue
}

}

当我打印 self.lat 时,坐标将作为字符串“36.97736”输出。但是,当我打印 self.lati 时,会打印 Double 0.0。

我也尝试过

self.lat = foundCharacters
let formatter = NSNumberFormatter()
formatter.locale = NSLocale(localeIdentifier: "en_US")
if let decimalAsDoubleUnwrapped = formatter.numberFromString(self.lat) {
self.lati = decimalAsDoubleUnwrapped.doubleValue
}

我得到了和以前一样的结果。

已修复:结果发现“36.97736”前面添加了额外的空白字符(空格),并且 Swift 提示该字符串不是 Double 格式,因此它返回 nil。

最佳答案

在 Swift 2.0 中,您可以使用 Double("String") 返回一个可选值。以下是如何在代码中使用它

    lat = foundCharacters //not mentioned in the function btw
if let doubleFromlat = Double(lat) {
lati = doubleFromlat
} else { print("foundCharacters does not hold double") }

关于xcode - 在 Swift 中将字符串转换为 double 值 (Xcode v 7.0.1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com