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?

9voto

Beachten Sie, dass der Wert, den Sie formatieren, numerisch sein sollte. Es scheint, als würde er keine Zeichenfolgendarstellung einer Zahl akzeptieren und mit Kommas formatieren.

6voto

Abolfazl Rastgou Punkte 450
String.Format("0,###.###"); funktioniert auch mit Dezimalstellen

3voto

belal ahmad Punkte 29

Sie möchten den gleichen Formatwert und kulturspezifisch.

 Double value= 1234567;
 value.ToString("#,#.##", CultureInfo.CreateSpecificCulture("hi-IN"));

Ergebnis: 12,34,567

2 Stimmen

Dies ist sehr spezifisch für die indische Kultur, es wäre besser, eine allgemeinere Antwort zu verwenden.

3voto

dunwan Punkte 1467

Sie können eine Funktion wie diese verwenden, um Zahlen zu formatieren und optional die gewünschten Dezimalstellen zu übergeben. Wenn Dezimalstellen nicht angegeben sind, werden zwei Dezimalstellen verwendet.

    public static string formatNumber(decimal valueIn = 0, int decimalPlaces = 2)
    {
        return string.Format("{0:n" + decimalPlaces.ToString() + "}", valueIn);
    }

Ich verwende decimal, aber Sie können den Typ in jeden anderen ändern oder ein anonymes Objekt verwenden. Sie könnten auch eine Fehlerprüfung für negative Dezimalstellenwerte hinzufügen.

1voto

Yusuff Sodiq Punkte 385

Ich habe viele der oben genannten Vorschläge ausprobiert, aber das Folgende funktioniert besser für mich:

string.Format("{0:##,###.00}", meinWert)

aber dies schlägt fehl, wenn Werte wie 0,2014 vorliegen, wo es .21 ergibt. Dafür verwende ich

string.Format("{0:#,##0.00}", meinWert)

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