gpt4 book ai didi

macos - 使用swift从货币代码中获取货币符号

转载 作者:IT王子 更新时间:2023-10-29 05:13:47 30 4
gpt4 key购买 nike

如何使用 Swift (macOS) 获取相应货币代码的货币符号。

示例:

  • 欧元 = 1.00 欧元
  • 美元 = 1.00 美元
  • 加元 = 1.00 美元
  • 英镑 = 1.00 英镑

我的代码:

var formatter = NSNumberFormatter()
formatter.currencySymbol = getSymbol(currencyCode)
formatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
let number = NSNumber(double: (amount as NSString).doubleValue)
let amountWithSymbol = formatter.stringFromNumber(number)!

getSymbol(_ currencyCode: String) -> String

或者..有更好的方法吗?

最佳答案

有点晚了,但这是我用来获取货币符号的 $ 而不是 US$ 等的解决方案。

/*
* Bear in mind not every currency have a corresponding symbol.
*
* EXAMPLE TABLE
*
* currency code | Country & Currency | Currency Symbol
*
* BGN | Bulgarian lev | лв
* HRK | Croatian Kuna | kn
* CZK | Czech Koruna | Kč
* EUR | EU Euro | €
* USD | US Dollar | $
* GBP | British Pound | £
*/

func getSymbol(forCurrencyCode code: String) -> String? {
let locale = NSLocale(localeIdentifier: code)
return locale.displayNameForKey(NSLocaleCurrencySymbol, value: code)
}

基本上,这会根据您的货币代码创建 NSLocale 并获取货币的显示属性。如果结果与货币代码匹配,例如 SEK,它将通过从货币代码中删除最后一个字符并附加“_en”以形成 SE_en 来创建新的国家/地区特定区域设置.然后它将再次尝试获取货币符号。

swift 3 和 4

func getSymbol(forCurrencyCode code: String) -> String? {
let locale = NSLocale(localeIdentifier: code)
if locale.displayName(forKey: .currencySymbol, value: code) == code {
let newlocale = NSLocale(localeIdentifier: code.dropLast() + "_en")
return newlocale.displayName(forKey: .currencySymbol, value: code)
}
return locale.displayName(forKey: .currencySymbol, value: code)
}

关于macos - 使用swift从货币代码中获取货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31999748/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com