gpt4 book ai didi

swift - NSNumberFormatter 货币 : "plusSign" replaces currency

转载 作者:行者123 更新时间:2023-11-28 05:39:50 25 4
gpt4 key购买 nike

在 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")

最佳答案

原来会计是你的救星,改变数字样式

numberStyle = .currencyAccounting

你得到了你预期的输出

关于swift - NSNumberFormatter 货币 : "plusSign" replaces currency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com