Formatowanie liczb za pomocą DecimalFormat

Próbuję sformatować ceny za pomocą DecimalFormat, ale nie działa to dla wszystkich odmian.

DecimalFormat df = new DecimalFormat("0.##")
df.format(7.8)
df.format(85.0)

wydruki

7.80

i

85

ale „7.79999” zostanie sformatowany jako „7,8”, a nie „7,80”. Próbowałem robić rzeczy w ten sposób

DecimalFormat df = new DecimalFormat("0.00")

wymusić dwa dp, ale potem „85.0” zostanie sformatowane jako „85.00”, a nie „85”!

Czy istnieje sposób na przechwycenie wszystkich odmian, aby ceny były drukowane jako #, ## lub #. ##? Na przykład:

5, 55, 5,55, 5,50, 500, 500,40

questionAnswers(5)

yourAnswerToTheQuestion