NumberFormatter中的本地货币符号

问题描述 投票:0回答:1

如何设置NumberFormatter以返回货币符号,而不是iso,而是返回在iOS区域设置面板中可见的本地货币符号。像波兰货币一样,我需要使用“zł”符号而不是“ PLN”符号。

我无法找到从系统获取它的任何方法,因为无法对其进行硬编码。 IAP本地化价格也使用“zł”而非“ PLN”]

我尝试过这种方式:

let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.currencySymbol = Locale.current.currencySymbol
formatter.maximumFractionDigits = 2

let price = formatter.string(from: (offeringPrice / 12) as NSNumber) ?? ""

但是无论我尝试用什么作为货币符号,我总会得到“ PLN”的回报

ios swift nsnumberformatter numberformatter
1个回答
1
投票

如果将formatter.locale设置为pl_PL,它将起作用:

let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.maximumFractionDigits = 2
formatter.currencyCode = "PLN"

let polandLocale = Locale(identifier: "pl_PL")
let usLocale = Locale(identifier: "en_US")

let offeringPrice = 50.0
let price = (offeringPrice / 12) as NSNumber

formatter.locale = usLocale
formatter.string(from: price) // "PLN 4.17"

formatter.locale = polandLocale
formatter.string(from: price) // "4,17 zł"
© www.soinside.com 2019 - 2024. All rights reserved.