首页 文章

从当前文化中获取货币?

提问于
浏览
49

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

这样我就可以在付款时将此信息发送给PayPal

7 回答

  • 76

    使用RegionInfo.ISOCurrencySymbol属性 . 例如:

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

    输出:“美元”

  • 39

    你可以从 CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol 获得符号,但我怀疑这已经足够了;您可能需要为每种文化维护一个单独的列表 . 或者只是让用户告诉你他们想要支付的费用(例如,他们可能不在家等,所以在一些酒店休息室的PC文化不是他们的信用卡上的文化)

  • 0

    一旦你有了CultureInfo ci对象,你可以问一下

    ci.NumberFormat.CurrencySymbol
    

    对于当前的文化,你只需要做

    CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
    
  • 26
    string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;
    
  • 3

    你基本上可以使用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;
                        }
                    }
            }
    
  • 2

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

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

相关问题