Если это то, что вы ищете:
Я бы конвертировал их в строки и выписывал их, поэтому я хотел бы, чтобы это было 3 вместо 3,0, но не 3 вместо 3,4324.
Тогда «правильный» путь использует DecimalFormat
:
DecimalFormat fmt = new DecimalFormat("0.#");
fmt.setMaximumFractionDigits(Integer.MAX_VALUE);
assert "3".equals(fmt.format(3.0));
assert "3.4324".equals(fmt.format(3.4324));
Тем не менее, он локализует десятичный разделитель (вместо запятой я получаю запятую). Если это проблема, вы можете просто позвонить fmt.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.ROOT))
.