Вот небольшой код, чтобы проиллюстрировать, что я вижу
float floater = 59.999f;
DecimalFormat df = new DecimalFormat("00.0");
System.out.println(df.format(floater));
Отпечатки:
60.0
Я бы хотел, чтобы он печатал
59.9
Что мне нужно сделать?
Ответ 1
Добавьте эту строку перед использованием DecimalFormat:
df.setRoundingMode(RoundingMode.DOWN);
Взгляните на другие режимы округления и посмотрите, какой из них лучше для вас.
Примечание: этот метод работает только в JDK 1.6 или выше
Ответ 2
float d = 59.999f;
BigDecimal bd = new BigDecimal(d);
// Use the returned value from setScale, as it doesn't modify the caller.
bd = bd.setScale(1, BigDecimal.ROUND_FLOOR);
String formatted = bd.toString();