Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 当字符串设置为Double时,它等于nil_Swift - Fatal编程技术网

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

Swift 当字符串设置为Double时,它等于nil,swift,Swift,这就是我的问题 我正在尝试将label.text转换为双精度值(标签仅包含数字)。由于该值并不总是设置,我们将其声明为可选值,因此我使用以下方法: if let 我的代码是: if let firstvalue = Double(label1.text!){ label2.text = "\(firstvalue)" } 但是,label2.text要么返回nil,要么根本不显示任何内容。 label1的值在另一个ViewController(ViewController2)中计算。 但

这就是我的问题

我正在尝试将label.text转换为双精度值(标签仅包含数字)。由于该值并不总是设置,我们将其声明为可选值,因此我使用以下方法:

if let
我的代码是:

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

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

我很感激你的帮助,因为我真的被困住了。 提前谢谢

试试这个

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,float,这样它将给出所需的结果

示例:

     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)")

        }

希望对您有所帮助。

要解决此问题,请首先确保您的行号没有任何空格或字母。这与:

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

你确定label1.text!返回一个数字,但它没有空格吗?我也有同样的问题;我收到的是“2.5”而不是“2.5”(注意2之前的空格).我想出来了!!正如你所说,我在数值前不小心按了空格。哈哈,真不敢相信我已经坚持了四天,这就是问题所在。非常感谢你,我自己永远也想不到!!我很乐意帮助你!我只是把它作为一个答案写下来,把它标记为正确,这样每个人都能更快地找到答案。是的,这很有效s、 问题是,因为我有多个标签要添加,所以我需要一个Double、float或Int。当我使用second value label2添加第一个值时。text显示这两个值,但不显示加法的总和。你对如何解决这个问题有什么想法吗?谢谢你的回复,它真的很有帮助!!!检查我编辑的答案。它可以做两个加法标签。问题是,我已经尝试了你的所有答案。它们似乎都很有效,因为它们不返回nil,应用程序也不会崩溃。但是,当按下按钮时,什么都不会发生,就像:if let语句没有通过,比如firstvalue不等于Double(label1.text!).再次感谢你的帮助,我非常感激!