Удалить конечные нули в представлении с плавающей запятой

Объявив переменную этой формы %.2f, я хочу, чтобы у нее было максимум 2 цифры после запятой.

Как и сейчас, он показывает только два, как и ожидалось, я хотел бы также удалить конечные нули.

formatString = "< %.2f Km"

где я использую formatString как String.format(formatString , value)

Есть ли способ сделать это в этой части кода?


person Leo Messi    schedule 05.06.2018    source источник
comment
Заголовок stackoverflow.com/questions/48804787/   -  person Yati Sawhney    schedule 05.06.2018
comment
Удалить конечный нуль в Java   -  person Johnny Mopp    schedule 05.06.2018


Ответы (1)


Это должно работать для вашего случая:

double value = 3.502;
String formatString = "< %s Km";
String formattedString = String.format(formatString, new DecimalFormat("#.##").format(value));

Дубликат Как красиво форматировать плавающие числа в строку без ненужного десятичного 0?

person 0x1C1B    schedule 05.06.2018
comment
Я тестировал его, он сохраняет целое число без ., он удаляет конечные 0 после 1-го десятичного знака. Я думаю, что это идеальное решение вопроса. - person KeitelDOG; 05.06.2018
comment
Разве это не было бы намного чище, чем просто new DecimalFormat("< #.## Km").format(value), вообще без использования String.format? - person VGR; 05.06.2018
comment
может я что-то не так делаю, но в моем случае все равно показывает один 0 после целых чисел. например: 100 отображается 100.0. Я хотел бы показать целые числа, если они такие. вот фрагмент с моим кодом: pastebin.com/RuxZPdDv , первый - где объявлен, а второй - где он возвращается - person Leo Messi; 06.06.2018
comment
@LeoMessi Если вы используете new DecimalFormat("#.##") вместо new DecimalFormat(".##"), это также должно работать для целых чисел. - person 0x1C1B; 06.06.2018