在Swift中配置NSNumberFormatter时,如下所示:
extension NumberFormatter {
convenience init(currencyCode code: String) {
self.init()
numberStyle = .currency
locale = .autoupdatingCurrent
maximumFractionDigits = 2
positivePrefix = plusSign
currencyCode = code
minimumFractionDigits = 2
}它适用于货币符号位于末尾的地区,例如de_DE:12345变成+1.234,00 €。但对于de_AT来说,它变成了+1.234,00 --如果没有positivePrefix,它就是€ 1.234,00;我怎么能总是在前面(+和-)显示标志,但仍然保留货币?
编辑:
我预计这个测试会失败(因为货币缺失),但它成功了:
currencyFormatter.locale = Locale(identifier: "de_AT")
XCTAssertEqual(currencyFormatter.string(from: NSNumber(value: 0)), "+0,00")发布于 2019-07-27 13:14:48
原来会计是你的救星,改变数字风格
numberStyle = .currencyAccounting你就能得到你期望的产出
https://stackoverflow.com/questions/57232013
复制相似问题