我想要一种方法,当用户输入数字时,文本字段会用逗号和货币符号格式化数字,在这种情况下,我想要英镑符号 - £
。
实施例 -
用户输入30000
,文本字段将输入格式化为£30,000
。
我目前有一个允许我这样做的方法,但是,我一直得到一个小数/浮点数。
例 -
用户输入30000
,文本字段将输入格式化为£30,000.00
。
我不想随时.00
。
我该如何解决这个问题?
我尝试从float
更改为Int
,但文本字段立即停止了。
这是我目前使用的代码 -
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)!
}
我需要一个带货币符号的货币符号 - £
和一个货币符号。
有人可以帮助我吗?
答案 0 :(得分:0)
您可以通过将小数位设置为0
来消除浮点数 formatter.maximumFractionDigits = 0
formatter.minimumFractionDigits = 0
用英镑符号获得结果
formatter.currencySymbol = "£"
并获得没有任何标志的结果
formatter.currencySymbol = ""