2009-09-18 10 views
3

J'ai créé un objet CultureInfo à l'aide de CultureInfo ("fr-FR"). Maintenant, j'ai un numéro que je veux appeler .ToString ("C", FrenchCultureInfo). La chaîne résultante met l'euro après le numéro. Pourquoi?Modification de l'emplacement du symbole de devise dans System.Globalization.NumberFormatInfo

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

De tout ce que j'ai vu, l'euro doit être à gauche, et mes besoins d'affaires mandat qu'il est à gauche. Toutefois, il n'existe aucun moyen de définir par programme cette valeur.

Des idées sur la façon dont je peux définir cette valeur facilement? J'ai commencé à prendre un objet de culture américaine et à copier tout ce qui concerne la culture française, puisque nous voulons toujours tous les autres paramètres français, à l'exception de l'euro sur la bonne valeur. Mais cette méthode prend beaucoup de temps et est frustrante.

Merci!

Répondre

6

Clone l'original puis le modifier:

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" 

Notez que cela affectera seulement cet objet CultureInfo spécifique, et non celui obtenu pour le français en général - donc vous aurez besoin pour vous assurer de l'utiliser partout.

+0

Homme, la seule propriété que je n'ai pas vérifié. Merci Jon! –

Questions connexes