1049 Stimmen

.NET String.Format() um Kommas an tausendstel Stelle für eine Zahl hinzuzufügen

Ich möchte ein Komma an der Tausenderstelle für eine Zahl hinzufügen.

Würde String.Format() der richtige Weg sein? Welches Format würde ich verwenden?

1526voto

Seibar Punkte 65915
$"{1234:n}";  // Ausgabe: 1.234,00
$"{9876:n0}"; // Keine Dezimalstellen. Ausgabe: 9.876

19 Stimmen

Wie kann ich den "N"-Platzhalter replizieren, jedoch mit so vielen Dezimalstellen wie in der Nummer vorhanden sind?

61 Stimmen

@Justin: Laut msdn.microsoft.com/en-us/library/0c899ak8.aspx werden ',' (und '.') durch die korrekten lokalisierten Zeichen ersetzt.

0 Stimmen

Kurz und einfach zu lesen, aber die Ganzzahl wird in einer Box angezeigt, wenn sie als Argument übergeben wird. Ich bevorzuge die Antwort von @alchemical darauf.

483voto

alchemical Punkte 13019

Ich fand das als den einfachsten Weg:

myInteger.ToString("N0")

2 Stimmen

Sie können es auch mit string.Format verwenden, wie in string.Format("Hier ist eine Zahl mit Kommas und ohne Dezimalstellen, {0:N0}", 123456789(;

18 Stimmen

Sollte es nicht meinInteger.ToString("N0") sein ... string.tostring würde meiner Meinung nach nicht funktionieren.

1 Stimmen

Ich weiß, es sind jetzt 5 Jahre vergangen, aber danke! Das funktioniert für Zahlen mit mehr als 4 Zeichen und mit weniger als 4 Zeichen.

165voto

int number = 1000000000;
string whatYouWant = number.ToString("#,##0");
//Sie erhalten: 1.000.000.000

33 Stimmen

Diese Lösung ist aus internationaler Sicht nicht gut - andere Kulturen verwenden als Tausendertrennzeichen andere Zeichen als ,, zum Beispiel ein Leerzeichen oder sogar ..

8 Stimmen

Funktioniert danke + 1. Habe erweitert, so dass es bis zu 2 Dezimalstellen anzeigt. number.ToString("#,##0.##")

0 Stimmen

@Justin Das ist wahr, aber manchmal sind die Anforderungen dumm, und Anforderungen sind Anforderungen. :) Terrapins Methode wäre überlegen, wenn genügend Flexibilität gegeben wäre, wie du bereits festgestellt hast.

130voto

prabir Punkte 7464

Wenn Sie kulturspezifisch sein möchten, könnten Sie dies versuchen:

Verwenden Sie den Namespace: "using System.Globalization;"

(19950000.0).ToString("N",new CultureInfo("en-US")) = 19,950,000.00

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

Indische Kultur: (19950000.0).ToString("N",new CultureInfo("hi-IN"))\= 1,99,50,000.00

Hinweis: Einige Kulturen verwenden , um das Dezimalzeichen anstelle von . zu bedeuten, also seien Sie vorsichtig.

6 Stimmen

Bingo! (und "N0" zum Ausblenden der Dezimalstelle)

104voto

CoderTao Punkte 3641

Standardformate mit ihren entsprechenden Ausgaben,

Console.WriteLine("Standard Numerische Formatbezeichner");
String s = String.Format("(C) Währung: . . . . . . . . {0:C}\n" +
                    "(D) Dezimal:. . . . . . . . . {0:D}\n" +
                    "(E) Wissenschaftlich: . . . . . . . {1:E}\n" +
                    "(F) Festkommazahl:. . . . . . . {1:F}\n" +
                    "(G) Allgemein:. . . . . . . . . {0:G}\n" +
                    "    (Standard):. . . . . . . . {0} (Standard = 'G')\n" +
                    "(N) Nummer: . . . . . . . . . {0:N}\n" +
                    "(P) Prozent:. . . . . . . . . {1:P}\n" +
                    "(R) Round-trip: . . . . . . . {1:R}\n" +
                    "(X) Hexadezimal:. . . . . . . {0:X}\n",
                    - 1234, -1234.565F);
Console.WriteLine(s);

Beispieloutput (en-us Kultur):

(C) Währung: . . . . . . . . ($1,234.00)
(D) Dezimal:. . . . . . . . . -1234
(E) Wissenschaftlich: . . . . . . . -1.234565E+003
(F) Festkommazahl:. . . . . . . -1234.57
(G) Allgemein:. . . . . . . . . -1234
    (Standard):. . . . .

2 Stimmen

Diese Antwort enthielt viele nützliche Informationen. Durch das Beispiellernen sehe ich jetzt, was die 0 und die 1 im Zeichenformat bedeuten.

0 Stimmen

Wow, wirklich schöne Erklärung

0 Stimmen

Die einzige Frage, die ich habe, ist, wenn die angegebene Zahl negativ ist, warum ist die Währung positiv?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X