小数和分组分隔符不正确:
func setAmountString (amountValue: Int, isoCodeStr: String) {
let formatter = NumberFormatter()
formatter.currencyCode = isoCodeStr
formatter.numberStyle = NumberFormatter.Style.currencyISOCode
if let formatterStr: String = formatter.string(from: NSNumber(value: amountValue)) {
return formatterStr
}else {
return "0.0"
}
}
print("美元金额 (setAmountString(amountValue: Int(1234567.89), isoCodeStr: "USD"))") print("英镑金额 (setAmountString(amountValue: Int(1234567.89), isoCodeStr: "GBP"))") print("欧元金额 (setAmountString(amountValue: Int(1234567.89), isoCodeStr: "EUR"))")
Output:
amount in USD Optional("$1,234,567.00")
amount in GBP Optional("£1,234,567.00")
amount in EUR Optional("€1,234,567.00")
Expected Output:
amount in USD Optional("$1,234,567.89")
amount in GBP Optional("£1.234.567,89")
amount in EUR Optional("€1.234.567,89")
最佳答案
使用locale
更改数字格式(分隔符等)。使用currencyCode
更改货币符号。例如:
let formatter = NumberFormatter()
formatter.numberStyle = NumberFormatter.Style.currencyAccounting
formatter.locale = Locale(identifier: "DE")
formatter.currencyCode = "eur"
let string = formatter.string(from: 1234567) // "1.234.567,00 €"
关于swift - 如何使用 ISOCode 快速获取带有小数点和分组分隔符的货币格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48984009/