Cambio de ubicación del símbolo de moneda en System.Globalization.NumberFormatInfo
-
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!
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.