Ваше решение почти правильное, но вы должны заменить нули '0' в шаблоне десятичного формата на хэши "#".
Так оно должно выглядеть так:
DecimalFormat myFormatter = new DecimalFormat("#.###");
Иэта строка не обязательна (поскольку decimalSeparatorAlwaysShown
по умолчанию false
):
myFormatter.setDecimalSeparatorAlwaysShown(false);
Вот краткая сводка из javadocs:
Symbol Location Localized? Meaning
0 Number Yes Digit
# Number Yes Digit, zero shows as absent
И ссылка на javadoc: DecimalFormat