如何在swift中获取相应货币代码的NSLocale?
代码:
func format(amount: String, code: String) -> NSDictionary {
var formatter = NSNumberFormatter()
let locale = getLocaleByCurrencyCode(code)
formatter.locale = locale
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
let number = NSNumber(double: (amount as NSString).doubleValue)
return ["locale":locale, "amount": formatter.stringFromNumber(number)!]
}
func getLocaleByCurrencyCode(code) -> NSLocale {
...
}
答案 0 :(得分:2)
你不能;通常有许多具有单一货币代码的区域设置。例如,欧元区的每个国家都共享货币代码" EUR",但它们都有自己的区域设置 - 有时甚至是几个。同样,有些货币在系统中没有关联的区域设置。
在大多数情况下,您应始终使用系统区域设置来显示数字。使用特定于所显示货币的本地化显示格式可能比使用更混乱。 (例如,它可以显示一百万美元作为" $ 1,000,000.00",一百万欧元作为"€.000.000,00"和百万卢比作为& #34;₹10,00,000.00"。)
答案 1 :(得分:0)
您可以从货币代码中获取区域设置。
let locale = NSLocale(localeIdentifier: CurrencyCode)
或使用获取货币名称
Locale.current.localizedString(forCurrencyCode: CurrencyCode (like "INR"))