formatowanie liczb

0

Witam

Czy można liczbę 150649467 sformatować do postaci 1 506 494,67?
Próbowałem z DecimalFormat("###,###,###.##"). Niestety to nie działa bo dostałem następujący wynik 150 649 467. Czy ktoś może mi pomóc? Z góry dzięki

Pozdrawiam

0

Podziel przez 100.0 (lub przez 100) i formatuj wynik dzielenia.

int a=150649647;
DecimalFormat df1=new DecimalFormat("###,###,###.##");
System.out.println(df1.format(a/100.0));
DecimalFormat df2=new DecimalFormat("###,###,###");
DecimalFormat df3=new DecimalFormat("##");
System.out.println(df2.format(a/100)+","+df2.format(a%100));
0

Możesz też skonwertować tę liczbę na string i następnie samodzielnie dorzucić znak
char PRZECINEK = DecimalFormatSymbols.getInstance().getDecimalSeparator();
przed dwoma ostatnimi oraz uzupełnić spacjami co trzy wcześniejsze znaki. Czyli zrobić taki bardzo prosty parser. To i tak będzie szybsze niż użycie klasy DecimalFormat oraz bardzo czasochłonnego dzielenia na każdą wyświetlaną liczbę. Ale to oczywiście wtedy kiedy ma liczyć się szybkość.

1 użytkowników online, w tym zalogowanych: 0, gości: 1