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

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

UITextField的數字鍵盤:浮點值用點而不是逗號

UITextField的數字鍵盤:浮點值用點而不是逗號

侃侃爾雅 2020-02-02 15:34:16
我正在使用從數字鍵盤填充的textField。麻煩的是,在許多本地格式(例如,全歐洲)中,UITextField的數字鍵盤使用逗號而不是點,因此每次我寫一個十進制數字時,UITextField都無法識別十進制逗號并對其進行舍入。例如23,07變成23。我該如何解決?我想將textField設置為固定在美國;可能嗎?怎么樣?我用這個讀取值:var importo = (importoPrevistoTF.text as NSString).floatValue
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

SO Answer的潛在重復,使用NSNumberFormatter


Swift示例:


let number = NSNumberFormatter().numberFromString(numberString)

if let number = number {

    let floatValue = Float(number)

}

示例(目標-C):


NSNumber *number = [[NSNumberFormatter new] numberFromString: numberString];

float floatValue = number.floatValue;


查看完整回答
反對 回復 2020-02-02
?
PIPIONE

TA貢獻1829條經驗 獲得超9個贊

沒有人真正直接解決過這個問題。


也就是說,十進制分隔符是語言環境的約定。


iOS支持根據特定語言環境格式化數字。


如果您僅在給定的語言環境中工作,那么一切都應該正常工作。鍵盤應接受帶有正確小數點分隔符的數字。


例如,如果您在歐洲的大多數國家/地區,則需要輸入逗號作為小數點分隔符。在這些國家/地區輸入點是錯誤的。這些國家之一的人不會這樣做,因為這是錯誤的小數點分隔符。歐洲用戶將知道使用逗號作為小數點分隔符,而您無需執行任何操作。


如果您在美國,則需要使用句點。在美國使用逗號將是錯誤的。


顯示十進制數字的方式是使用數字格式器。創建數字格式化程序時,默認情況下它將使用當前語言環境。


如果需要將包含十進制數字的字符串從一種語言環境轉換為另一種語言環境,則應使用2個數字格式器。在源語言環境中使用格式化程序將字符串轉換為浮點數。然后,使用帶有目標語言環境的格式化程序,將數字轉換為輸出格式的字符串。


只需在默認的當前語言環境中創建一個數字格式化程序,然后創建第二個數字格式化程序并將其語言環境顯式設置為您要使用的另一種語言環境即可。


查看完整回答
反對 回復 2020-02-02
  • 3 回答
  • 0 關注
  • 1182 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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