从当前文化中获取货币?

lee*_*n3o 51 c# currency cultureinfo

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

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

Han*_*ant 82

使用RegionInfo.ISOCurrencySymbol属性.例如:

  var ri = new RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID);
  Console.WriteLine(ri.ISOCurrencySymbol);
Run Code Online (Sandbox Code Playgroud)

输出:"美元"


Mar*_*ell 40

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


Fad*_*man 26

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

ci.NumberFormat.CurrencySymbol
Run Code Online (Sandbox Code Playgroud)

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

CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol
Run Code Online (Sandbox Code Playgroud)

  • 这将不会返回 ISO 货币符号。例如,你会得到像 € 这样的欧元符号而不是 EUR 。 (2认同)

Cor*_*nel 6

string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;
Run Code Online (Sandbox Code Playgroud)