如何从货币代码中获取“语言环境”?

Gee*_*k20 2 macos cocoa currency 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 {
   ...
}
Run Code Online (Sandbox Code Playgroud)

小智 5

你不能;通常有许多语言环境具有单一的货币代码。例如,欧元区的每个国家都共享货币代码“EUR”,但它们都有自己的语言环境——有时甚至有几个。类似地,有些货币在系统中没有关联的区域设置。

在大多数情况下,您应该始终使用系统区域设置来显示数字。使用特定于所显示货币的本地化显示格式可能更令人困惑而不是有用。(例如,一百万美元可能显示为“$1,000,000.00”,一百万欧元显示为“€1.000.000,00”,一百万卢比显示为“?10,00,000.00”。)