2013-05-09 26 views
8

To prawdopodobnie proste pytanie i jestem pewien, że jest sposób na zrobienie tego przy pomocy string.format(), NumberFormatInfo, CultureInfo lub pewnej ich kombinacji, ale muszę wyświetlać duże wartości liczbowe z 3 końcowymi miejscami dziesiętnymi, zamiast przecinka dziesiętnego dla separatora tysięcy, a następnie przecinek dla separatora milionów i wyższych.numer formatu z 3 miejscami po przecinku, dziesiętnym separatorem tysięcy i przecinkami po tym

wejściowy jest albo cała ilość lub liczbę, następnie podaje się do trzech miejsc po przecinku (20.000, 123.456, 12.2)

np

142650 powinien być wyświetlany jako 142,650.000

11200.50 powinny wyświetlacz jak 11,200.500

123.456 powinny pozostać 123.456

Przypuszczam, że to taka sama jak podzielenie v alue przez 1000, a następnie używając string.format("{0:f3}", value), ale miałem nadzieję znaleźć coś, co nie miało arytmetycznych.

String.Format("{0:#,#.000}", value) dostaje mi bliskie, ale stawia wiodącą 0 w małych ilościach, więc 1,256 wyświetla jako 01.256, kiedy trzeba to pozostanie tylko 1,256

+1

Co dokładnie przekazujesz dla wartości? 'String.Format (" {0: #, #. 000} ", 1256)" drukuje "1 256 000". Myślę, że musimy zobaczyć więcej kodu. –

+0

Zobacz edytuj. Przepraszam za to. – Brett

+0

Na podstawie Twojej edycji wygląda na to, że dzielisz teraz dane wejściowe na 1000. Jak już określiłeś, format f3 powinien dać ci dokładnie to, czego potrzebujesz w tym momencie. –

Odpowiedz

11

Format String.Format("{0:#,0.000}", value) zakończyła się robi to za mnie. Działa na liczbach całkowitych i liczbach z dowolną liczbą od 1 do 3 końcowych miejsc dziesiętnych.