2015-01-05 89 views
0

我試圖將一個字符串,如「3.9」轉換爲Swift中的浮點值,它將表示爲3.9(然後可以用於計算)。 我運行到這裏的問題作爲轉換似乎並沒有被正確的說,我的代碼如下所示:在Swift中將字符串小數轉換爲float或double?

var a:Float = (lastNumber as NSString).floatValue 
var b:Float = (answerField!.text! as NSString).floatValue 
if (operatorLabel?.text == "+"){ 
     println(a) 
    } 

我試圖做一個基本的計算器應用程序,你可以看到。但是,當我打印「a」值時,它顯示爲錯誤(11db),我不確定如何處理此問題。有什麼想法嗎?我現在在想,我可能會遇到問題,因爲「3.9」中的時間段沒有被轉換爲小數點,但我不確定。

+0

確定lastNumber是「3.9」。如果你的代碼是......只是在操場上測試它是100%,那麼你的代碼應該可以工作。 – ad121

+0

我使用了它,它似乎可能是一個問題,因爲我使用Xcode6 beta6。你是否也在使用它? – Phil

+0

我在應用商店使用6.1.1。好東西,但你發現問題。 – ad121

回答

0

它更簡單。

let s = "3.9" 
let a = Float(s) 

小心強制解開 - 並且不要使插座可選。

if let st = answerField.text { 
    b = Float(s) 
} 
+0

網點必須始終是可選的。一個隱含的解包可選不比強制解包更好。 – Sulthan

+0

@Sulthan就網點而言,很多人(包括我)都會爭辯說,隱含的解包選項沒有問題。 –

+0

@TimVermeulen我完全同意,但考慮這樣一句話:「不要讓出口可選,並注意力量解開」。這是沒有道理的,因爲隱式解包可選是可選的並且總是強制展開。 – Sulthan