要从当前文化中获取货币吗?

问题描述 投票:53回答:8

是否有一种方法可以从应用程序区域性设置中动态获取当前信息?基本上,如果用户将文化设置为美国,我想知道货币是美元,或者如果他们将文化设置为英国,我想英镑等。

因此,我可以在付款时将此信息发送给PayPal

是否有一种方法可以从应用程序区域性设置中动态获取当前信息?基本上,如果用户将区域性设置为美国,我想知道该货币是美元,还是将其设置为......>

c# currency cultureinfo
8个回答
86
投票

使用RegionInfo.ISOCurrencySymbol属性。例如:

  var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
  Console.WriteLine(ri.ISOCurrencySymbol);

41
投票

您可以从CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol中获得符号


25
投票

一旦有了CultureInfo ci对象,就可以问诸如此类>

ci.NumberFormat.CurrencySymbol

4
投票
string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;

2
投票

您基本上可以使用CultureInfo类

CultureInfo ci = new CultureInfo(UICulture);
var symbol = ci.NumberFormat.CurrencySymbol;

1
投票
    public static string GetCurrencySymbol(string currency)
    {
        if (currency == null) return "";
        if (currency == "") return "";
        int i = 0;
        var regionInfo = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
        foreach (var cultureInfo in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures))
        {
            if (!cultureInfo.Equals(CultureInfo.InvariantCulture))
            {
                var regionCulture = new RegionInfo(cultureInfo.LCID);

                    if(regionCulture.ISOCurrencySymbol == currency)
                    {
                        //list.Add(regionCulture);
                        regionInfo = regionCulture;
                    }
                }
        }

0
投票

http://help.outlook.com/en-us/140/system.globalization.regioninfo.currencynativename(VS.85).aspx

您需要RegionInfo.CurrencyNativeName,RegionInfo.CurrencyEnglishName或RegionInfo.ISOCurrencySymbol


0
投票

这对我有用。

var c = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
      .Select(t=> new RegionInfo(t.LCID))
      .Where(t=>t.ThreeLetterISORegionName  == "USA")
      .FirstOrDefault();
© www.soinside.com 2019 - 2024. All rights reserved.