货币缩写 (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,所以我敢打赌还有其他的。 KWDSARAED 是一些三个字母的货币首字母缩写词。大多数货币没有符号,但使用ISO 4217 中列出的 ISO 缩写。如果您的应用程序已本地化,则应使用适当的符号。例如Kuwaiti DinarKWD 也是د.ك【参考方案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) 转换为货币符号 (€, $, £)的主要内容,如果未能解决你的问题,请参考以下文章

sql跨列计算

1欧元=1.2250/1.2350美元是啥意思

MySQL总结了两个相反的货币对

外汇汇率怎么换算的?

如何从文本文件 C++ 创建对象?

SQL:将宽表转换为窄表