Cambio de ubicación del símbolo de moneda en System.Globalization.NumberFormatInfo

StackOverflow https://stackoverflow.com/questions/1446273

  •  22-07-2019
  •  | 
  •  

Pregunta

Creé un objeto CultureInfo usando el nuevo CultureInfo (" fr-FR "). Ahora tengo un número al que quiero llamar .ToString (" C " ;, FrenchCultureInfo). La cadena resultante pone el & # 8364; DESPUÉS del número. ¿Por qué?

CultureInfo french = new CultureInfo("fr-FR");
double value = 1234.56;
string output = value.ToString("C", french);//output = "1 234,56 €"

Por todo lo que he visto, el Euro debe estar a la izquierda, y mis requisitos comerciales exigen que esté a la izquierda. Sin embargo, no hay forma de establecer este valor mediante programación.

¿Alguna idea sobre cómo puedo establecer este valor fácilmente? He comenzado a tomar un objeto de cultura estadounidense y copiarlo de la cultura francesa, ya que todavía queremos todas las demás configuraciones francesas, excepto el Euro en el valor correcto. Pero este método consume mucho tiempo y es frustrante.

¡Gracias!

¿Fue útil?

Solución

Clone el original y luego modifíquelo:

CultureInfo french = new CultureInfo("fr-FR");
french = (CultureInfo) french.Clone();
// Adjust these to suit
french.NumberFormat.CurrencyPositivePattern = 2;
french.NumberFormat.CurrencyNegativePattern = 2;
double value = 1234.56;
string output = value.ToString("C", french);//output = "€ 1 234,56"

Tenga en cuenta que esto solo afectará a ese objeto específico CultureInfo , no al obtenido para el francés en general, por lo que deberá asegurarse de usarlo en todas partes.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top