3 回答
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
迅捷2.0+
現(xiàn)在,在Swift 2.0中,您可以使用Float(Wage.text)返回Float?類型的方法。比下面返回的解決方案更清晰0。
如果出于某種原因想要一個(gè)0無(wú)效的值,則Float可以使用Float(Wage.text) ?? 0該值,如果無(wú)效則返回0該值Float。
舊解決方案
解決此問(wèn)題的最佳方法是直接投射:
var WageConversion = (Wage.text as NSString).floatValue
我實(shí)際上也創(chuàng)建了一個(gè)extension更好地使用它的方法:
extension String {
var floatValue: Float {
return (self as NSString).floatValue
}
}
現(xiàn)在,您可以呼叫var WageConversion = Wage.text.floatValue并允許分機(jī)為您處理網(wǎng)橋!
這是一個(gè)很好的實(shí)現(xiàn),因?yàn)樗梢蕴幚韺?shí)際的浮點(diǎn)數(shù)(使用進(jìn)行輸入.),并且還有助于防止用戶將文本復(fù)制到您的輸入字段(12p.34或什至12.12.41)中。
顯然,如果Apple確實(shí)floatValue在Swift 中添加了,則會(huì)拋出異常,但與此同時(shí)可能會(huì)很好。如果他們稍后添加它,那么只需修改擴(kuò)展名,您只需要做的就是刪除擴(kuò)展名,一切將無(wú)縫進(jìn)行,因?yàn)槟呀?jīng)在調(diào)用了.floatValue!
另外,變量和常量應(yīng)以小寫(xiě)字母開(kāi)頭(包括IBOutlets)
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
因?yàn)槔缭谑澜绲哪承┑貐^(qū),使用逗號(hào)代替小數(shù)。最好創(chuàng)建一個(gè)NSNumberFormatter來(lái)將字符串轉(zhuǎn)換為float。
let numberFormatter = NSNumberFormatter()
numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
let number = numberFormatter.numberFromString(self.stringByTrimmingCharactersInSet(Wage.text))
TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
斯威夫特1
這是Paul Hegarty在2015年斯坦福大學(xué)CS193p課程上的表現(xiàn):
wageConversion = NSNumberFormatter().numberFromString(wage.text!)!.floatValue
您甚至可以創(chuàng)建一個(gè)計(jì)算屬性,而不必每次都這樣做
var wageValue: Float {
get {
return NSNumberFormatter().numberFromString(wage.text!)!.floatValue
}
set {
wage.text = "\(newValue)"
}
}
- 3 回答
- 0 關(guān)注
- 598 瀏覽
添加回答
舉報(bào)
