1049 Stimmen

.NET String.Format() zur Hinzufügung von Kommata am Tausenderplatz für eine Zahl

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

Wäre String.Format() der richtige Ansatz? Welches Format würde ich verwenden?

1526voto

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

19 Stimmen

Wie kann ich den "N"-Platzhalter replizieren, aber 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 leicht zu lesen, aber die Ganzzahl wird eingerahmt, wenn sie als Argument übergeben wird. Ich bevorzuge @alchemical's Antwort dazu.

483voto

alchemical Punkte 13019

Ich fand dies 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 myInteger.ToString("N0") sein ... string.tostring würde meiner Meinung nach nicht funktionieren.

1 Stimmen

Ich weiß, es sind jetzt 5 Jahre vergangen, aber Danke! Es funktioniert für Zahlen > 4 Zeichen und < 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 andere Zeichen als , als Tausendertrennzeichen, zum Beispiel ein Leerzeichen oder sogar ..

8 Stimmen

Funktioniert danke + 1. Habe erweitert, sodass bis zu 2 Dezimalstellen angezeigt werden. number.ToString("#,##0.##")

0 Stimmen

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

130voto

prabir Punkte 7464

Wenn Sie kulturspezifische Angaben wünschen, könnten Sie dies ausprobieren:

Verwenden Sie 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 , statt . als Dezimaltrennzeichen, also seien Sie vorsichtig.

6 Stimmen

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

104voto

CoderTao Punkte 3641

Standardformate mit ihren zugehörigen 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) Festkomma:. . . . . . . . {1:F}\n" +
                    "(G) Allgemein:. . . . . . . . {0:G}\n" +
                    "    (Standard):. . . . . . . {0} (Standard = 'G')\n" +
                    "(N) Nummer: . . . . . . . . . {0:N}\n" +
                    "(P) Prozentual:. . . . . . . {1:P}\n" +
                    "(R) Rundungsreise: . . . . . {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) Festkomma:. . . . . . . . -1234.57
(G) Allgemein:. . . . . . . . . -1234
    (Standard):. . . . . . . . -1234 (Standard = 'G')
(N) Nummer: . . . . . . . .

2 Stimmen

Diese Antwort enthielt viele nützliche Informationen. Durch ein Beispiel lernen, sehe ich jetzt, was die 0 und 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