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?
Wie kann ich den "N"-Platzhalter replizieren, aber mit so vielen Dezimalstellen wie in der Nummer vorhanden sind?
@Justin: Laut msdn.microsoft.com/en-us/library/0c899ak8.aspx werden ',' (und '.') durch die korrekten lokalisierten Zeichen ersetzt.
Kurz und leicht zu lesen, aber die Ganzzahl wird eingerahmt, wenn sie als Argument übergeben wird. Ich bevorzuge @alchemical's Antwort dazu.
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(;
Sollte es nicht myInteger.ToString("N0") sein ... string.tostring würde meiner Meinung nach nicht funktionieren.
Ich weiß, es sind jetzt 5 Jahre vergangen, aber Danke! Es funktioniert für Zahlen > 4 Zeichen und < 4 Zeichen.
Diese Lösung ist aus internationaler Sicht nicht gut - andere Kulturen verwenden andere Zeichen als ,
als Tausendertrennzeichen, zum Beispiel ein Leerzeichen oder sogar .
.
Funktioniert danke + 1. Habe erweitert, sodass bis zu 2 Dezimalstellen angezeigt werden. number.ToString("#,##0.##")
@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.
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.
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: . . . . . . . .
Diese Antwort enthielt viele nützliche Informationen. Durch ein Beispiel lernen, sehe ich jetzt, was die 0 und 1 im Zeichenformat bedeuten.
Die einzige Frage, die ich habe, ist, wenn die angegebene Zahl negativ ist, warum ist die Währung positiv?
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.