我正在尝试像这样格式化货币值:
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 $"