我有一个看起来像这样的货币格式功能:

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/

10-10 08:18