Question .NET String.Format () pour ajouter des virgules dans des milliers de place pour un nombre


Je veux ajouter une virgule à la place des milliers pour un nombre. String.Format()?


672
2017-09-19 21:26


origine


Réponses:


String.Format("{0:n}", 1234); //Output: 1,234.00

string.Format("{0:n0}", 9876); // no digits after the decimal point. Output: 9,876

962
2017-09-19 21:29



J'ai trouvé que c'était le moyen le plus simple:

myInteger.ToString("N0")

299
2017-10-19 05:04



int number = 1000000000;
string whatYouWant = number.ToString("#,##0");
//You get: 1,000,000,000

125
2017-11-17 15:15



Si vous voulez une culture spécifique, vous pouvez essayer ceci:

(19950000.0).ToString("N",new CultureInfo("en-US")) = 19.950.000,00

(19950000.0).ToString("N",new CultureInfo("is-IS")) = 19.950.000,00

Note: Certaines cultures utilisent , signifier décimal plutôt que . donc sois prudent.


86
2017-10-26 09:22



Formats standards, avec leurs sorties associées,

Console.WriteLine("Standard Numeric Format Specifiers");
String s = String.Format("(C) Currency: . . . . . . . . {0:C}\n" +
                    "(D) Decimal:. . . . . . . . . {0:D}\n" +
                    "(E) Scientific: . . . . . . . {1:E}\n" +
                    "(F) Fixed point:. . . . . . . {1:F}\n" +
                    "(G) General:. . . . . . . . . {0:G}\n" +
                    "    (default):. . . . . . . . {0} (default = 'G')\n" +
                    "(N) Number: . . . . . . . . . {0:N}\n" +
                    "(P) Percent:. . . . . . . . . {1:P}\n" +
                    "(R) Round-trip: . . . . . . . {1:R}\n" +
                    "(X) Hexadecimal:. . . . . . . {0:X}\n",
                    - 1234, -1234.565F);
Console.WriteLine(s);

Exemple de sortie (culture en-us):

(C) Currency: . . . . . . . . ($1,234.00)
(D) Decimal:. . . . . . . . . -1234
(E) Scientific: . . . . . . . -1.234565E+003
(F) Fixed point:. . . . . . . -1234.57
(G) General:. . . . . . . . . -1234
    (default):. . . . . . . . -1234 (default = 'G')
(N) Number: . . . . . . . . . -1,234.00
(P) Percent:. . . . . . . . . -123,456.50 %
(R) Round-trip: . . . . . . . -1234.565
(X) Hexadecimal:. . . . . . . FFFFFB2E

64
2018-03-01 23:44



C'est le meilleur format. Fonctionne dans tous ces cas:

String.Format( "{0:#,##0.##}", 0 ); // 0
String.Format( "{0:#,##0.##}", 0.5 ); // 0.5 - some of the formats above fail here. 
String.Format( "{0:#,##0.##}", 12314 ); // 12,314
String.Format( "{0:#,##0.##}", 12314.23123 ); // 12,314.23
String.Format( "{0:#,##0.##}", 12314.2 ); // 12,314.2
String.Format( "{0:#,##0.##}", 1231412314.2 ); // 1,231,412,314.2

32
2017-07-09 23:43



String.Format("{0:#,###,###.##}", MyNumber)

Cela vous donnera des virgules aux points pertinents.


31
2017-09-19 21:29



Si vous souhaitez forcer un séparateur "," indépendamment de la culture (par exemple dans un message de trace ou de journal), le code suivant fonctionnera et aura l'avantage supplémentaire de dire au prochain qui trébuche dessus exactement ce que vous faites.

int integerValue = 19400320; 
string formatted = string.Format(CultureInfo.InvariantCulture, "{0:N0}", integerValue);

ensembles formatés à "19 400 320"


19
2018-03-27 19:55