格式化程序货币值返回'US'额外的后缀



我正在尝试像这样格式化货币值:

let price: Double = 1
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.currencyCode = "USD"
formatter.locale = Locale(identifier: "en_US")
let priceString = formatter.string(from: NSNumber(value: Double(price / 100)))

但是我得到的结果是&;US$ 0,01&;而不是"$ 0,01"。我如何删除"US"前面的额外后缀?

NumberFormatter是旧的API。下面是现代语法


您需要找到一个区域设置,其中"US"是隐含的,但人们用逗号代替句号,就像我们在美国一样。

0.01.formatted(.currency(code: "USD"))

Locale(identifier: "en_US")中生成"$0.01"

0.01.formatted(
FloatingPointFormatStyle.Currency(code: "USD", locale: .init(identifier: "de_DE"))
)

生成"0,01 $"

最新更新