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?
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?
Dies ist das beste Format. Funktioniert in all diesen Fällen:
String.Format( "{0:#,##0.##}", 0 ); // 0
String.Format( "{0:#,##0.##}", 0.5 ); // 0.5 - einige der oben genannten Formate scheitern hier.
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
Die am meisten gewählte Antwort war großartig und hat etwa 7 Jahre lang geholfen. Mit der Einführung von C# 6.0 und speziell der String-Interpolation gibt es eine sauberere und meiner Meinung nach sicherere Möglichkeit, das zu tun, was gefragt wurde, um Kommas an Tausenderstellen für eine Zahl hinzuzufügen
:
var i = 5222000;
var s = $"{i:n} ist die Zahl"; // ergibt > 5.222.000,00 ist die Zahl
s = $"{i:n0} hat keine Dezimalstelle"; // ergibt > 5.222.000 hat keine Dezimalstelle
Wo die Variable i
anstelle des Platzhalters eingefügt wird (d.h. {0}
). Es ist also nicht erforderlich, sich daran zu erinnern, welches Objekt an welche Position kommt. Das Formatieren (d.h. :n
) hat sich nicht geändert. Für eine vollständige Liste der neuen Funktionen können Sie diese Seite besuchen.
Die Methode ":n" ist besser, da sie die Sprachumgebung des Benutzers respektieren sollte.
Dies ist zwar wahr, aber es ist nicht garantiert, dass Sie Kommas am Tausenderpunkt erhalten, da es die Lokalisierung des Benutzers respektiert.
Genau das gleiche bei dir: Das ist wahr, aber es ist nicht garantiert, dass der Standort des Benutzers respektiert wird, da Kommata als Tausender-Trennzeichen verwendet werden. (Als Beispiel wird in Portugal das Komma stattdessen als Dezimaltrennzeichen verwendet.)
Das folgende Beispiel zeigt mehrere Werte, die mit benutzerdefinierten Formatzeichenfolgen formatiert sind, die Nullplatzhalter enthalten.
String.Format("{0:N1}", 29255.0);
Oder
29255.0.ToString("N1")
Ergebnis "29,255.0"
String.Format("{0:N2}", 29255.0);
Oder
29255.0.ToString("N2")
Ergebnis "29,255.00"
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.