Modification de l'emplacement du symbole monétaire dans System.Globalization.NumberFormatInfo

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

  •  22-07-2019
  •  | 
  •  

Question

J'ai créé un objet CultureInfo à l'aide du nouvel élément CultureInfo ("fr-FR"). Maintenant, j'ai un numéro que je veux appeler .ToString ("C", FrenchCultureInfo). La chaîne résultante met le & # 8364; APRÈS le numéro. Pourquoi?

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

D'après tout ce que j'ai vu, l'euro doit être à gauche et les impératifs de mon activité l'exigent. Cependant, il n’existe aucun moyen de définir cette valeur par programme.

Des idées sur la façon dont je peux définir cette valeur facilement? J'ai commencé à prendre un objet de la culture américaine et à tout copier de la culture française, car 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!

Était-ce utile?

La solution

Clonez l'original puis modifiez-le:

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 n’affectera que cet objet CultureInfo spécifique, pas celui obtenu pour le français en général - vous devez donc vous assurer de l’utiliser partout.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top