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