当字符串设置为Double时,它等于nil

时间:2017-02-15 14:35:56

标签: swift

所以这是我的问题。

我试图将label.text转换为Double值(标签只包含数字。)由于值并不总是设置,我们将其声明为可选值,因此我使用方法:

if let

我的代码是:

if let firstvalue = Double(label1.text!){
label2.text = "\(firstvalue)"

} 

但是,label2.text要么返回nil,要么根本不显示任何内容。 label1的值在另一个ViewController(ViewController2)中计算。 但它仍然有一个弹出的值,等于label1.text。

我很感激任何帮助,因为我真的被困住了。 提前致谢!

2 个答案:

答案 0 :(得分:0)

试试这个

let lblval = label1.text
if let firstvalue = lblval {
label2.text = "\(firstvalue)" or label2.text = firstvalue
} 

您正在尝试添加两个字符串,即lbl1.text =“55”和lbl2.text =“5”result = lbl1.test + lbl2.text。 最后,您收到的结果为“555”。不是添加字符串,首先你可以将它输入为Double,浮动所以它会给出所需的结果

示例:

     let lblval1 = Double(label1.text) or Int(label1.text)
     let lblval2 = Double(label2.text) or Int(label1.text)

        if let firstvalue = lblval1, let secondvalue = lblval2 {

            let result = firstvalue + second value
            print("Addition : \(result)")

        }

希望它对你有所帮助。

答案 1 :(得分:0)

要解决这个问题,首先要确保你的steing没有任何空格或字母。这不一样:

let num1 = String(" 2.5") //will crash
let num2 = String("2.5") //will work