我正在尝试使用 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
...但是我得到了错误
Argument labels '(_:)' do not match any available overloads
在 Swift 中格式化 Decimal
的正确方法是什么?
最佳答案
您可以先将Decimal
转换为NSDecimalNumber
:
让 priceString = currencyFormatter.string(from: myTotal as NSDecimalNumber)
关于swift - 如何在 Swift 3 中格式化小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46107044/