我正在尝试用swift语言编写一个BMI程序。 我有这个问题:如何转换字符串为双精度?

在Objective-C中,我可以这样做:

double myDouble = [myString doubleValue];

但是如何在Swift语言中实现这一点呢?


当前回答

var stringValue = "55"

var convertToDouble = Double((stringValue as NSString).doubleValue)

其他回答

另一个选项是将this转换为NSString并使用它:

let string = NSString(string: mySwiftString)
string.doubleValue

在Swift 2.0中使用此代码

let strWithFloat = "78.65"
let floatFromString = Double(strWithFloat)

或者你可以这样做:

var myDouble = Double((mySwiftString.text as NSString).doubleValue)

我还没找到我想要的答案。 我只是把我的贴在这里,希望它能帮助到任何人。只有在不需要特定格式时,这个答案才有效。

斯威夫特3

extension String {
    var toDouble: Double {
        return Double(self) ?? 0.0
    }
}

我的问题是逗号,所以我这样解决它:

extension String {
    var doubleValue: Double {
        return Double((self.replacingOccurrences(of: ",", with: ".") as NSString).doubleValue)
    }
}