货币缩写 (EUR, USD, GBP) 转换为货币符号 (€, $, £)
Posted
技术标签:
【中文标题】货币缩写 (EUR, USD, GBP) 转换为货币符号 (€, $, £)【英文标题】:Currency abbreviation (EUR, USD, GBP) convert to currency symbol (€, $, £) 【发布时间】:2011-07-07 04:26:53 【问题描述】:我有一些下拉框,其中包含欧元、美元、英镑等货币缩写以及所有其他货币。我想使用一些 c# .Net 功能/方法,我可以在其中插入货币缩写并返回货币符号(€、$、£)。
我希望有人可以帮助我。
【问题讨论】:
【参考方案1】:您可以遍历所有文化,直到找到匹配项:
public string GetCurrencySymbolFromAbbreviation(string abbreviation)
foreach (CultureInfo nfo in CultureInfo.GetCultures(CultureTypes.SpecificCultures))
RegionInfo region = new RegionInfo(nfo.LCID);
if (region.ISOCurrencySymbol == abbreviation)
return region.CurrencySymbol;
return null;
【讨论】:
【参考方案2】:框架中没有专门处理此问题的内容,但您可以使用货币缩写和符号的Dictionary 解决它。
【讨论】:
【参考方案3】:我不知道框架中的任何内容,但如果您有感兴趣的货币列表,这听起来是使用Dictionary<string, string>
或可能 一个Dictionary<string, char>
(不知道有没有多字符的符号,但我不会感到惊讶)。
【讨论】:
旧的德国马克符号是 DM,所以我敢打赌还有其他的。KWD
、SAR
、AED
是一些三个字母的货币首字母缩写词。大多数货币没有符号,但使用ISO 4217 中列出的 ISO 缩写。如果您的应用程序已本地化,则应使用适当的符号。例如Kuwaiti Dinar
是KWD
也是د.ك
【参考方案4】:
我一直在寻找一些动态解决方案,我发现了这个:
RegionInfo regionInfo = (from culture in CultureInfo.GetCultures(CultureTypes.InstalledWin32Cultures)
where culture.Name.Length > 0
let region = new RegionInfo(culture.LCID)
where String.Equals(region.ISOCurrencySymbol, "EUR", StringComparison.InvariantCultureIgnoreCase)
select region).First();
string currencySymbol = regionInfo.CurrencySymbol;
【讨论】:
【参考方案5】:您可以使用数组列表/哈希表来存储 EUR、USD、GBP 及其各自的 unicode 0x20A0[EUR]、0x0024 [USD ]& 0x00A3 [英镑]。
当您需要或下拉的 onChange 事件时,您可以从这个数组列表/哈希表中获取数据。
【讨论】:
【参考方案6】:简单的方法是,您可以使用带有货币名称、货币符号的数据库。 当您选择货币名称时,它会自动选择货币符号,您可以使用该符号。
【讨论】:
以上是关于货币缩写 (EUR, USD, GBP) 转换为货币符号 (€, $, £)的主要内容,如果未能解决你的问题,请参考以下文章