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?
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?
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 ordentlichere und meiner Meinung nach sicherere Möglichkeit, das zu tun, was gefragt wurde , um Kommata an Tausenden Stellen für eine Zahl hinzuzufügen
:
var i = 5222000;
var s = $"{i:n} is the number"; // führt zu > 5.222.000,00 ist die Nummer
s = $"{i:n0} hat keine Dezimalstellen"; // führt zu > 5.222.000 hat keine Dezimalstellen
Wo die Variable i
anstelle des Platzhalters (d.h. {0}
) platziert wird. So muss man sich nicht merken, welches Objekt an welche Position gehört. Das Formatieren (d.h. :n
) hat sich nicht geändert. Für eine vollständige Übersicht über die neuen Funktionen können Sie zu dieser Seite gehen.
Das ist zwar richtig, aber es ist nicht garantiert, dass Sie bei der Tausenderangabe Kommas erhalten, da es die Lokalisierung des Benutzers respektiert.
Genau dasselbe: das ist wahr, aber es ist nicht garantiert, dass es die Benutzerlokalität respektiert, da es Kommata als Tausendertrennzeichen verwendet. (Beispielsweise ist in Portugal das Komma stattdessen der Dezimaltrennzeichen.)
Das folgende Beispiel zeigt mehrere Werte, die mit benutzerdefinierten Formatzeichenfolgen formatiert sind, die Null-Platzhalter 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.