2017-02-15 3 views
1

だからここに私の問題があります。文字列がDoubleに設定されている場合、それはゼロと等しくなります

Imは(ラベルは数値のみが含まれています。)値は常に設定されていないので、我々は、オプションの値としてそれを宣言し、私はそのための方法を使用Double値にlabel.textを変換しよう:

if let 

私のコードは次のとおりです。

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

} 

しかし、label2.textどちらかはnilを返すか、まったく何も表示されません。 label1の値は別のViewController(ViewController2)で計算されます。 しかし、まだ値があり、label1.textと同じです。

私は本当に立ち往生しているので、何か助けに感謝します。 ありがとうございます!

+2

あなたは確かます。Label1.Textです数を返し、それはdoesnのスペースがありませんか?私は同じ問題がありました; 2.5の代わりに2.5を受け取りました(2の前のスペースに注意してください)。 –

+0

私はそれを理解しました!私は4日間このことにこだわっていたと信じることができませんでした。それは問題でした。本当にありがとうございました! –

+0

私は助けてうれしいです! 、それに印を付ける誰もがそれをより早く理解することができます。 –

答えて

2

は、次の2つの文字列、すなわちlbl1.text = "55" を追加しようとしているとlbl2.textは= "5" 結果= lbl1.test + lbl2.textこの

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

を試してみてください。 最後に「555」という結果が表示されます。代わりに文字列を追加することが望ましい結果に

例を与えるので、最初にあなたはダブル、フロートにそれを型キャストすることができます:

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

     } 

は、それはあなたのお役に立てば幸いです。

+0

はい、それは私が追加したいラベルが複数あるので、私はDouble、floatまたはIntが必要です。 私が最初の値を追加すると、secondvalueというラベルが付きます。label2.textは両方の値を表示しますが、加算の合計は表示しません。 これを解決する方法はありますか? 本当にあなたの返事をありがとう! –

+0

編集した回答を確認してください。 2つのラベルを追加します。 –

+0

だから、あなたの答えのすべてを試したことをheres。 これらはすべて動作しているように見えます。なぜなら、それらはゼロを返さず、アプリケーションはクラッシュしないからです。 ボタンを押すと何も起こりません。if letステートメントは通過しません。最初の値は= Double(label1.text!)ではありません。 もう一度お手伝いをしていただき、ありがとうございます! –

-1

着信double値を書式指定子でラップすることができます。入力値がDoubleタイプであることを確認してください。この問題を解決するには

if let firstvalue = Double(label1.text!){ 
label2.text = String(format:"%f", firstvalue) 
} 
0

、まずあなたのsteingは「トン任意のスペースや文字を持っているdoesnのそれは同じではありませんを確認します。!

let num1 = String(" 2.5") //will crash 
let num2 = String("2.5") //will work 
関連する問題