Modifica della posizione del simbolo di valuta in System.Globalization.NumberFormatInfo

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

  •  22-07-2019
  •  | 
  •  

Domanda

Ho creato un oggetto CultureInfo usando il nuovo CultureInfo (" fr-FR "). Ora ho un numero che desidero chiamare .ToString (" C " ;, FrenchCultureInfo). La stringa risultante inserisce & # 8364; DOPO il numero. Perché?

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

Da quanto ho visto, l'euro deve essere sulla sinistra e i miei requisiti aziendali richiedono che sia sulla sinistra. Tuttavia, non è possibile impostare programmaticamente questo valore.

Qualche idea su come posso impostare facilmente questo valore? Ho iniziato a prendere un oggetto di cultura degli Stati Uniti e copiarci tutto dalla cultura francese, poiché vogliamo ancora tutte le altre impostazioni francesi, tranne l'euro sul giusto valore. Ma questo metodo richiede molto tempo e frustrante.

Grazie!

È stato utile?

Soluzione

Clona l'originale e poi modificalo:

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"

Nota che questo influenzerà solo quello specifico oggetto CultureInfo , non quello ottenuto per il francese in generale - quindi dovrai assicurarti di usarlo ovunque.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top