macos - 如何从货币代码中获取 "locale"?

标签 macos swift 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 {
   ...
}

最佳答案

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

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

关于macos - 如何从货币代码中获取 "locale"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31996701/

相关文章:

ios - swift (IOS): Saving and Reading Data into/from a file

objective-c - UISlider - 当拇指触地时选择

cocoa - 来自自定义对象的 NSData

c - mac osx 开发环境

objective-c - cocoa contentsOfDirectoryAtPath : method failing with error for certain users - Mac OS X

ios - CALayer 作为左边框不起作用?

macos - Mac OS X 上的 Awesomium

swift - 如何在 xcode 中将视觉效果 View 移到后面,以便我可以在 Storyboard 中看到我的 UI?

python - 安装适用于 Mac 的 ODBC 驱动程序 pyodbc

ios - 无法在 UITableViewCell 中的 UILabel 中显示来自 CoreData 的 Double