我有一个货币格式func,如下所示:
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
我不希望负号以货币
格式化它的效果很好但我遇到的问题是如果我发送一个负十进制数字,我会回到负号。有没有办法放弃那个标志?在将其发送到转换器之前,我应该将小数转换为正数吗?
答案 0 :(得分:1)
通过采用绝对值:
,在通过货币格式化程序发送数字之前确保该数字为正数let number = -500
let positiveNumber = abs(number)
let formattedNumber = currencyFormat().string(for: positiveNumber)
这是最简单,最易读的方式。