2011-03-02 124 views

回答

3

框架中没有任何内容可以专门处理此问题,但您可以使用货币缩写和符号的Dictionary来解决此问题。

2

我不知道内置于框架什么,但如果你有你感兴趣的货币名单,这听起来像使用一个完美的地方一个Dictionary<string, string>可能一个Dictionary<string, char>(我不知道是否有任何多字符符号,但我不会感到惊讶)。

+1

旧的德国马克标志是DM,所以我打赌还有一些其他的。 – 2011-03-02 10:57:02

+1

'KWD','SAR','AED'是三个字母的货币首字母缩略词。大多数货币没有符号,但使用[ISO 4217](http://en.wikipedia.org/wiki/ISO_4217)中列出的ISO缩写。如果您的应用已本地化,则应使用适当的符号。例如'Kuwaiti Dinar'是'KWD'还有'د.ك' – 2012-06-13 05:38:42

1

您可以使用ArrayList /哈希表来存储欧元,美元,英镑与各自的Unicode 0x20A0 [EUR],0x0024 [美元] & 0x00A3 [GBP]。

当您需要或onChange事件的下拉列表时,您可以从此ArrayList /哈希表中获取数据。

2

我一直在寻找一些动态的解决方案,我发现这一点:

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; 
+0

比特币通过什么? – Henrik 2012-11-02 09:22:06

3

您可以通过所有的文化,直到你找到一个匹配运行:

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; 
} 
0

简单的方法是,你可以使用数据库与货币名称,货币符号。 当您选择货币名称时,它会自动选择货币符号,您可以使用该货币符号。

相关问题