C# Language Mise en forme de devise


Exemple

Le spécificateur de format "c" (ou devise) convertit un nombre en une chaîne représentant un montant en devise.

string.Format("{0:c}", 112.236677) // $112.23 - defaults to system

Précision

La valeur par défaut est 2. Utilisez c1, c2, c3, etc. pour contrôler la précision.

string.Format("{0:C1}", 112.236677) //$112.2
string.Format("{0:C3}", 112.236677) //$112.237
string.Format("{0:C4}", 112.236677) //$112.2367
string.Format("{0:C9}", 112.236677) //$112.236677000

Symbole de la monnaie

  1. Passez l'instance de CultureInfo pour utiliser le symbole de culture personnalisé.
string.Format(new CultureInfo("en-US"), "{0:c}", 112.236677); //$112.24
string.Format(new CultureInfo("de-DE"), "{0:c}", 112.236677); //112,24 €
string.Format(new CultureInfo("hi-IN"), "{0:c}", 112.236677); //₹ 112.24
  1. Utilisez n'importe quelle chaîne comme symbole de devise. Utilisez NumberFormatInfo pour personnaliser le symbole monétaire.
NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;
nfi = (NumberFormatInfo) nfi.Clone();
nfi.CurrencySymbol = "?";
string.Format(nfi, "{0:C}", 112.236677); //?112.24
nfi.CurrencySymbol = "?%^&";
string.Format(nfi, "{0:C}", 112.236677); //?%^&112.24

Position du symbole monétaire

Utilisez CurrencyPositivePattern pour les valeurs positives et CurrencyNegativePattern pour les valeurs négatives.

NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;        
nfi.CurrencyPositivePattern = 0;
string.Format(nfi, "{0:C}", 112.236677); //$112.24 - default
nfi.CurrencyPositivePattern = 1;
string.Format(nfi, "{0:C}", 112.236677); //112.24$
nfi.CurrencyPositivePattern = 2;
string.Format(nfi, "{0:C}", 112.236677); //$ 112.24
nfi.CurrencyPositivePattern = 3; 
string.Format(nfi, "{0:C}", 112.236677); //112.24 $

L'utilisation d'un motif négatif est identique à un motif positif. Beaucoup plus de cas d'utilisation s'il vous plaît se référer au lien original.

Séparateur décimal personnalisé

NumberFormatInfo nfi = new CultureInfo( "en-US", false ).NumberFormat;        
nfi.CurrencyPositivePattern = 0;
nfi.CurrencyDecimalSeparator = "..";
string.Format(nfi, "{0:C}", 112.236677); //$112..24