Вот небольшой код для иллюстрации того, что я вижу
float floater = 59.999f; DecimalFormat df = new DecimalFormat("00.0"); System.out.println(df.format(floater));
Это печатает:
60.0
Я бы хотел напечатать
59.9
Что мне нужно сделать?
Добавьте эту строку перед использованием DecimalFormat:
DecimalFormat
df.setRoundingMode(RoundingMode.DOWN);
Посмотрите на другие режимы округления и посмотрите, какой из них лучше для вас.
Примечание: этот метод работаеттолько в JDK 1.6 или выше
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();