web-dev-qa-db-fra.com

Conversion de Decimal en chaîne avec un format différent de celui par défaut

J'ai besoin de convertir la décimale en chaîne, dans ces règles:

120.00 - "120"
120.01 - "120.01"
120.50 - "120.50"
17
user1046047

Vous pouvez utiliser le decimal.ToString remplacer pour spécifier une mise en forme.

decimal amount = 120.00m;
string str = amount.ToString("0.00");

Cela peut également être utilisé lors de l'utilisation de String.Format.

Console.WriteLine("{0:0.00}", amount); 

Dans le cas de votre première règle, cela ne peut pas se faire sur une seule ligne.

decimal amount = 120.00m;
string str = amount.ToString("0.00").Replace(".00", String.Empty);
27
Joshua

Il existe différentes surcharges pour decimal.ToString En fonction du formatage souhaité.

Exemple

decimal d = 5.00
Console.WriteLine(d.ToString("C")); // for currency

Voir ci-dessous pour d'autres surcharges ... specifier est ce que vous mettez dans la ToString(specifier)

Documentation MSDN sur Decimal.ToString

valeur décimale = 16325,62 m; spécificateur de chaîne;

// Use standard numeric format specifiers.
specifier = "G";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    G: 16325.62
specifier = "C";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    C: $16,325.62
specifier = "E04";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    E04: 1.6326E+004
specifier = "F";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    F: 16325.62
specifier = "N";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    N: 16,325.62
specifier = "P";
Console.WriteLine("{0}: {1}", specifier, (value/10000).ToString(specifier));
// Displays:    P: 163.26 %

// Use custom numeric format specifiers.
specifier = "0,0.000";
Console.WriteLine("{0}: {1}", specifier, value.ToString(specifier));
// Displays:    0,0.000: 16,325.620
specifier = "#,#.00#;(#,#.00#)";
Console.WriteLine("{0}: {1}", specifier, (value*-1).ToString(specifier));
// Displays:    #,#.00#;(#,#.00#): (16,325.62)
8
Kolob Canyon

Vous pouvez utiliser la méthode decimal.Tostring()

les pls passent par ce lien pour plus d'informations

2
Enigma State

Utilisez la méthode decimal.ToString () . Vous pouvez spécifier le format avec cette méthode si vous avez besoin:

decimal d = 120.00;
string ds = d.ToString("#,#.00#");
// ds is a formated string of d's value
1
Pablo Santa Cruz