2013-05-09 5 views
8

Dies ist wahrscheinlich eine einfache Frage, und ich bin sicher, es gibt einen Weg, es mit string.format(), NumberFormatInfo, CultureInfo oder eine Kombination von ihnen zu tun, aber ich muss große numerische Werte mit 3 nachgestellten Dezimalstellen anzeigen, eine Dezimalstelle anstelle eines Kommas für das Tausendertrennzeichen und dann ein Komma für das Millionentrennzeichen und höher.Format Nummer mit 3 abschließenden Dezimalstellen, ein Dezimal Tausender Trennzeichen und Komma danach

Der Eingang ist entweder eine ganze Zahl oder eine Zahl gefolgt von bis zu drei Dezimalstellen (20000, 123.456, 12,2)

Zum Beispiel:

142650 sollte als 142,650.000

11200,50 anzeigen soll Anzeige als 11,200.500

123.456 sollte 123.456

bleibe ich glaube, es ist die gleiche wie die v Dividieren alue durch 1000 und dann unter Verwendung string.format("{0:f3}", value), aber ich hoffte, etwas zu finden, das Arithmetik nicht nahm.

String.Format("{0:#,#.000}", value) wird mir nahe, aber es bringt eine führende 0 auf kleine Zahlen, so 1,256 anzeigt als 01,256, wenn ich brauche es nur 1.256

+1

Was genau passierst du für den Wert? 'String.Format (" {0: #, #. 000} ", 1256)' druckt "1.256.000". Ich denke, wir müssen mehr von deinem Code sehen. –

+0

Siehe Bearbeiten. Das tut mir leid. – Brett

+0

Basierend auf Ihrer Bearbeitung, sieht es so aus, als ob Sie die Eingabe jetzt durch 1000 teilen. Wie Sie sagen, sollte das f3-Format Ihnen genau das geben, was Sie an diesem Punkt brauchen. –

Antwort

11

Das Format String.Format("{0:#,0.000}", value) es für mich tun endete bleiben auf. Es funktioniert für ganze Zahlen und Zahlen mit 1 bis 3 Dezimalstellen.

Verwandte Themen