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
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
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));
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ść.