2013-05-09 25 views
8

Questa è probabilmente una domanda semplice, e sono sicuro che c'è un modo per farlo con string.format(), NumberFormatInfo, CultureInfo o qualche combinazione di essi, ma ho bisogno di visualizzare grandi valori numerici con 3 cifre decimali finali, un decimale invece di una virgola per il separatore delle migliaia e quindi una virgola per il separatore di milioni e su.con 3 cifre decimali finali, un separatore decimale di migliaia e virgole dopo quello

L'ingresso è un numero intero oppure un numero seguito da fino a tre cifre decimali (20000, 123.456, 12.2)

Ad esempio:

142650 dovrebbero visualizzare come 142,650.000

11200,50 voglia display come 11,200.500

123.456 dovrebbe rimanere 123.456

suppongo che sia lo stesso che divide la v Alue per 1000 e quindi utilizzando string.format("{0:f3}", value), ma speravo di trovare qualcosa che non ha preso l'aritmetica.

String.Format("{0:#,#.000}", value) mi viene vicino, ma mette un 0 su piccoli numeri, quindi 1.256 è la visualizzazione come 01,256, quando ne ho bisogno di restare solo 1.256

+1

Che cosa state passando per il valore? 'String.Format (" {0: #, #. 000} ", 1256)' stampa "1,256.000". Penso che dobbiamo vedere più del tuo codice. –

+0

Vedi modifica. Mi dispiace per quello – Brett

+0

In base alla tua modifica, sembra che tu stia dividendo l'input per 1000. Come dici, il formato f3 dovrebbe darti esattamente quello che ti serve a questo punto. –

risposta

11

Il formato String.Format("{0:#,0.000}", value) finito per fare per me. Funziona per numeri interi e numeri con ovunque da 1 a 3 cifre decimali finali.