Zmienna double i miejca po przecinku.

0

Witam. Chcę zrobić coś takiego, aby moja zmienna była wyświetlana z dwoma miejscami po przecinku. Mam więc taki oto kod:

Double d=new Double(33.3345556);
java.text.DecimalFormat df=new java.text.DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(2);
System.out.println(df.format(d));

Gdy jednak zmienna "d" równa się liczbie całkowitej to wyświetla tą liczbę bez miejsc po przecinku (bez zer). Ja jednak chcę, aby wyświetlały się te zera. Czy jeśli zmienna jest równa np. 5, to aby wyświetlało "5,00". Jak to zrobić?

0
java.text.DecimalFormat df=new java.text.DecimalFormat("0.00");
System.out.println(df.format(d));
0

Niestety nic to nie dało. Dalej przy liczbach całkowitych nie wyświetlają się cyfry po przecinku.

0

Nie pisałeś o liczbach typu int, tylko double.

System.out.println(df.format((double)d));
0

W sytuacji w której musisz sformatować dużo liczb "z przecinkiem" wygodniejsze użycie oraz nieco szybszy efekt dają metody String.format oraz printf (dla różnych obiektów). Można wtedy użyć czegoś takiego

System.out.printf("Liczba %.2f ma dwa miejsca po przecinku, a %+09.4f jest dosunięta do prawej,"
	+ " uzupełniona o znak, uzupełniona zerami oraz ma 3 znaki liczby i 4 znaki ułamka%n", -2.5689, (double)30);

Wynik:
Liczba -2,57 ma dwa miejsca po przecinku, a +030,0000 jest dosunięta do prawej, uzupełniona o znak, uzupełniona zerami oraz ma 3 znaki liczby i 4 znaki ułamka

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