我有一个看起来像这样的货币格式功能:
func currencyFormat() -> NumberFormatter{
let currencyFormatter = NumberFormatter()
currencyFormatter.usesGroupingSeparator = true
currencyFormatter.numberStyle = NumberFormatter.Style.currency
// localize to your grouping and decimal separator
currencyFormatter.locale = NSLocale.current
return currencyFormatter
}
所以当我像这样使用它时:
currencyFormat().string(for: 20.34) --> $20.34
如果我发送负值也一样
currencyFormat().string(for: -20.34) --> -$20.34
我不希望负号以货币格式重新出现
它很好用,但是我遇到的问题是,如果我给它发送一个负的十进制数,我会得到负号。有没有办法删除该标志?我应将小数转换为正数,然后再发送给转换器吗?
最佳答案
通过取绝对值,在通过货币格式化程序发送数字之前,确保该数字为正:
let number = -500
let positiveNumber = abs(number)
let formattedNumber = currencyFormat().string(for: positiveNumber)
这是最简单,最易读的方法。
关于ios - 在Swift 4中对CurrencyFormatter使用负数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46203553/