我正在尝试使用Swift Decimal
结构进行货币操作,但我无法对其进行格式化。
如何格式化var myDecimal:Decimal = 9999.99
以显示$ 9,999.99?
不使用Decimal
我可以按照以下方式执行...
let myTotal:NSNumber = 9999.99
let currencyFormatter = NumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.numberStyle = .currency
currencyFormatter.locale = NSLocale.current
let priceString = currencyFormatter.string(from: myTotal)
myLabel.text = priceString
这种方法很好,但我一直在阅读,Decimal
似乎是正确的货币类型。
我试过......
let myTotal:Decimal = 9999.99
let currencyFormatter = NumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.numberStyle = .currency
// localize to your grouping and decimal separator
currencyFormatter.locale = NSLocale.current
let priceString = currencyFormatter.string(from: NSNumber(myTotal))
myLabel.text = priceString
...但我收到错误
参数标签'(_ :)'与任何可用的重载都不匹配
在Swift中格式化Decimal
的正确方法是什么?
答案 0 :(得分:4)
您可以先将Decimal
投射到NSDecimalNumber
:
let priceString = currencyFormatter.string(from: myTotal as NSDecimalNumber)