如果字符串是可选的,如何将字符串转换为双精度型?

时间:2019-03-11 19:22:28

标签: swift string type-conversion uitextfield double

我想将输入带入UITextField并将其转换为Double以进行计算。

func testFunction(field: UITextField) -> Int {
   let textInField: String! = field.text
           let value = Double!(textInField)

}

但是我得到了错误:

  

“字符串?”不能转换为“ Double”

如何解决此问题?

2 个答案:

答案 0 :(得分:0)

UITextField

text属性:

  

此字符串默认为@“”。

因此,这实际上意味着该属性永远不会nil,因此您可以使用感叹号安全地强制展开它

let textInField = field.text! // String

然后,您的方法应返回Double,而不是Int。另外,如果Double初始化失败,它将返回nil,因此您的方法应返回可选的值类型

func testFunction(field: UITextField) -> Double? {
    return Double(field.text!)
}

最后,当您调用此方法时,应安全地解开其返回值。为此,您可以使用可选的绑定

if let doubleValue = testFunction(field: someField) {
    // work with `doubleValue`
}

答案 1 :(得分:-1)

也许这是正确的格式?

   func testFunction(field: UITextField) -> Int {
 if  let textInField  = field.text ,
      let value = Double(textInField){
   print(value)
   }}