代码之家  ›  专栏  ›  技术社区  ›  YodasMyDad

从当前文化中获取货币?

  •  49
  • YodasMyDad  · 技术社区  · 15 年前

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

    这是我可以在付款时把这个信息发送给贝宝。

    7 回复  |  直到 12 年前
        1
  •  76
  •   Hans Passant    12 年前

    使用regioninfo.isocurrencySymbol属性。例如:

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

    产出:“美元”

        2
  •  39
  •   Marc Gravell    15 年前

    你可以得到 符号 CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol ,但我怀疑这是否足够;您可能需要为每个区域性维护一个单独的列表。或者让用户告诉你他们想用什么付款(例如,他们可能不在家,等等,所以在一些酒店的休息室里PC的文化 不是 他们的信用卡上有什么)

        3
  •  26
  •   Fadrian Sudaman    15 年前

    一旦有了cultureinfo ci对象,您可以询问

    ci.NumberFormat.CurrencySymbol
    

    对于当前的文化,您只需

    CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
    
        4
  •  3
  •   Cornel    13 年前
    string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;
    
        5
  •  2
  •   Jan Remunda    15 年前

    基本上可以使用cultureinfo类

    CultureInfo ci = new CultureInfo(UICulture);
    var symbol = ci.NumberFormat.CurrencySymbol;
    
        6
  •  1
  •   Mike    14 年前
        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;
                        }
                    }
            }
    
        7
  •  0
  •   Jeroen    15 年前

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

    您需要regioninfo.currencyNativeName、regioninfo.currencyEnglishName或regioninfo.isocurrencySymbol