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

问题描述

我注意到我的应用程序显示“-$ 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

解决方法

如果您使用的是货币,货币等,最好使用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的声明,如下所示

d

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

,

我目前的做法是:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...