2017-09-11 6 views
1

Avec la culture actuelle définie sur "sk-SK" (Slovaquie avec devise - euro) Je souhaite afficher le symbole de l'euro (€) au lieu de "EUR" lors de l'affichage prix en monnaie à Razor avec Price.ToString("c").Culture actuelle - Afficher le symbole de l'euro (€) au lieu de EUR string

Lorsque je change la culture actuelle en, par exemple en allemand ("DE-DE"), le symbole de l'euro (€) est affiché.

Je voudrais montrer le symbole de l'euro lors de l'affichage du prix avec la culture slovaque (pas de chaîne "EUR"). Je pense que cela dépend du système d'exploitation (notre système d'exploitation est Windows Server 2012) mais change la devise par défaut suggérée par cet article: https://www.howtogeek.com/240216/how-to-change-windows-default-currency-from-dollars-to-euros/ (dans notre cas de EUR à €) ne change pas la façon dont le symbole monétaire est affiché. Comment puis-je afficher la devise en euros au lieu de EUR?

+0

Et quelle est la problème à [changer le symbole monétaire] (https://msdn.microsoft.com/fr-fr/library/s ystem.globalization.numberformatinfo.currencysymbol (v = vs.110) .aspx) dans les paramètres régionaux 'sk-SK'? Il a setter. – Sinatr

+0

Quel est le problème d'écrire «€» dans le code rasoir? (par exemple: '@ Html.Label (" Quelque chose ") €') – SeM

Répondre

2
CultureInfo ci = new CultureInfo("sk-SK"); 
ci.NumberFormat.CurrencySymbol = "€"; 
CultureInfo.DefaultThreadCurrentCulture = ci; 
double Price = 10.0; 
Console.WriteLine(Price.ToString("c")); 

Cela produit la sortie

10,00 €

Une autre possibilité est de passer l'information de la culture comme dans IFormatProviderToString():

Console.WriteLine(Price.ToString("c",ci)); 
+0

Cela me donne "£ 10.00". Où avez-vous utilisé 'ci'? – SeM

+0

Je voulais éviter de définir le symbole monétaire explicitement dans le code. C'est un projet plus vaste et je ne veux pas faire de tels changements, ce qui le rendrait sujet à de futures erreurs (par exemple si la monnaie change). J'ai migré ce site web de Windows Server 2008 où 'Price.ToString (" c ")' avec la locale 'sk-SK' affiché le prix avec le symbole de l'euro. Si je ne trouve pas de solution différente, je marquerai votre réponse comme réponse. Merci – UrAn

+0

@SeM: Vous avez raison, j'ai oublié une ligne dans le code. Ne jamais réellement mettre 'ci' à' CultureInfo'. – waka