0
我想要一種方法,當用戶輸入一個數字時,文本字段將用逗號和貨幣符號格式化數字,在這種情況下,我希望英鎊英鎊符號 - £
。Swift/Xcode - 向UITextField添加貨幣符號和逗號
例 -
用戶輸入30000
,文本字段格式化輸入到£30,000
。
我目前確實有一個方法可以讓我做到這一點,但是,我不斷得到一個十進制/浮點數。
示例 - 用戶輸入30000
,文本字段將輸入格式設置爲£30,000.00
。我不希望.00
在任何時間。
我該如何解決這個問題?
我試圖從float
更改爲Int
,但文本字段只是立即辭職。
這是我目前using-
extension String {
func currencyInputFormatting() -> String {
var number: NSNumber!
let formatter = NumberFormatter()
formatter.maximumFractionDigits = 2
formatter.minimumFractionDigits = 2
formatter.currencySymbol = "£"
formatter.numberStyle = .currencyAccounting
var amountWithPrefix = self
// remove from String: "$", ".", ","
let regex = try! NSRegularExpression(pattern: "[^0-9]", options: .caseInsensitive)
amountWithPrefix = regex.stringByReplacingMatches(in: amountWithPrefix, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.characters.count), withTemplate: "")
let double = (amountWithPrefix as NSString).doubleValue
number = NSNumber(value: (double/100))
// if first number is 0 or all numbers were deleted
guard number != 0 as NSNumber else {
return ""
}
return formatter.string(from: number)!
}
的代碼,我需要一個有貨幣符號 - £
,一個沒有。
有人能幫我嗎?
非常感謝!我只需要改變一些代碼'let double =(amountWithPrefix as NSString).intValue number = NSNumber(value:(double/1))'現在它可以工作!你這麼多。 – SwiftLearner