如何使用货币NumberFormatter格式化负0

时间:2020-08-23 04:31:26

标签: swift nsnumberformatter

我注意到我的应用程序显示“-$ 0.00”,其值为-0。数学的简单形式是let balance: Double = -1 * value。我希望我的负0值仅显示为“ $ 0.00”。有没有办法让NumberFormatter正确处理呢?

let formatter = NumberFormatter()
formatter.numberStyle = .currency

let d: Double = -1 * 0
formatter.string(from: d as NSNumber)! // -$0.00

2 个答案:

答案 0 :(得分:1)

如果您使用的是货币,货币等,最好使用date age english value 2020-01-08 29 55 5 2020-01-22 22 45 0 2020-01-08 29 55 5 2020-05-18 43 75 8 2019-02-11 0 0 3 Decimal更好,而且在这里也可以解决您的问题,请更改Double的声明,如下所示< / p>

d

格式化程序将产生“ $ 0.00”

答案 1 :(得分:0)

我目前的做法是:

struct Formatter {

    static func currency(_ value: Double) -> String {
        let formatter = NumberFormatter()
        formatter.numberStyle = .currency
        let value = (value == 0) ? 0 : value // Convert -0 to 0
        return formatter.string(from: value as NSNumber) ?? ""
    }

}


Formatter.currency(-1 * 0) // $0.00
相关问题