number mexico example createspecificculture c# currency cultureinfo

mexico - set cultureinfo c#



Obtener la moneda de la cultura actual? (7)

¿Hay alguna forma de obtener información actual de forma dinámica desde la configuración de cultura de aplicaciones? Básicamente, si el usuario ha establecido la cultura en los EE. UU., Quiero saber que la moneda es dólares, o si la tienen establecida en el Reino Unido, quiero librar libras esterlinas, etc ... etc.

Esto es para poder enviar esta información a PayPal cuando se realiza un pago


Básicamente puedes usar la clase CultureInfo

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


Puede obtener el símbolo de CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol , pero dudo que esto sea suficiente; es posible que necesite mantener una lista separada por cultura. O simplemente deje que el usuario le diga en qué quiere pagar (por ejemplo, podrían estar lejos de casa, etc., por lo que la cultura de la PC en algún salón del hotel no es lo que está en su tarjeta de crédito)


Una vez que tenga el objeto CultureInfo ci, puede preguntar como

ci.NumberFormat.CurrencySymbol

Para la cultura actual, simplemente harás

CultureInfo.CurrentCulture.NumberFormat.CurrencySymbol


Use la propiedad RegionInfo.ISOCurrencySymbol. Por ejemplo:

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

Salida: "USD"



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


string isoCurrencySymbol = RegionInfo.CurrentRegion.ISOCurrencySymbol;