亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將String轉換為在Apple的Swift中浮動

將String轉換為在Apple的Swift中浮動

夢里花落0921 2019-11-27 10:30:33
我正在嘗試轉換從UITextField中獲取的數字(我認為它實際上是字符串),并將其轉換為浮點數,因此我可以將它們相乘。我有兩個UITextfield聲明如下:@IBOutlet var wage: UITextField@IBOutlet var hour: UITextField當用戶按下UIButton時,我想計算用戶賺取的工資,但是我不能,因為我需要先將其轉換為浮動工資,然后才能使用它們。我知道如何通過執行以下操作將它們轉換為整數:var wageConversion:Int = 0wageConversion = wage.text.toInt()!但是,我不知道如何將它們轉換為浮點數。
查看完整描述

3 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

迅捷2.0+

現在,在Swift 2.0中,您可以使用Float(Wage.text)返回Float?類型的方法。比下面返回的解決方案更清晰0。


如果出于某種原因想要一個0無效的值,則Float可以使用Float(Wage.text) ?? 0該值,如果無效則返回0該值Float。


舊解決方案

解決此問題的最佳方法是直接投射:


var WageConversion = (Wage.text as NSString).floatValue

我實際上也創建了一個extension更好地使用它的方法:


extension String {

    var floatValue: Float {

        return (self as NSString).floatValue

    }

}

現在,您可以呼叫var WageConversion = Wage.text.floatValue并允許分機為您處理網橋!


這是一個很好的實現,因為它可以處理實際的浮點數(使用進行輸入.),并且還有助于防止用戶將文本復制到您的輸入字段(12p.34或什至12.12.41)中。


顯然,如果Apple確實floatValue在Swift 中添加了,則會拋出異常,但與此同時可能會很好。如果他們稍后添加它,那么只需修改擴展名,您只需要做的就是刪除擴展名,一切將無縫進行,因為您已經在調用了.floatValue!


另外,變量和常量應以小寫字母開頭(包括IBOutlets)


查看完整回答
反對 回復 2019-11-27
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

因為例如在世界的某些地區,使用逗號代替小數。最好創建一個NSNumberFormatter來將字符串轉換為float。


let numberFormatter = NSNumberFormatter()

numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle

let number = numberFormatter.numberFromString(self.stringByTrimmingCharactersInSet(Wage.text))


查看完整回答
反對 回復 2019-11-27
?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊



斯威夫特1


這是Paul Hegarty在2015年斯坦福大學CS193p課程上的表現:


wageConversion = NSNumberFormatter().numberFromString(wage.text!)!.floatValue

您甚至可以創建一個計算屬性,而不必每次都這樣做


var wageValue: Float {

        get {

            return NSNumberFormatter().numberFromString(wage.text!)!.floatValue

        }

        set {

            wage.text = "\(newValue)"

        }

    }


查看完整回答
反對 回復 2019-11-27
  • 3 回答
  • 0 關注
  • 580 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號