Как к Java String.format с переменной точностью?

Я хотел бы варьироваться точность двойного представления в строке, которую я форматирую на основе ввода данных пользователем. Прямо сейчас я пробую что-то как:

String foo = String.format("%.*f\n", precision, my_double);

однако я получаю a java.util.UnknownFormatConversionException. Мое вдохновение для этого подхода было C printf, и этот ресурс (разделите 1.3.1).

У меня есть простая синтаксическая ошибка где-нибудь, Java поддерживает этот случай или является там лучшим подходом?

Править:

Я предполагаю, что мог сделать что-то как:

String foo = String.format("%." + precision + "f\n", my_double);

но я все еще интересовался бы собственной поддержкой такой операции.

24
задан Willi Mentzel 26 September 2017 в 16:09
поделиться

1 ответ

Вы вроде как ответили на свой вопрос - создавайте строку формата динамически ... допустимые строки формата соответствуют соглашениям, изложенным здесь: http: // java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax.

Если вам нужна отформатированная десятичная дробь, которая занимает всего 8 символов (включая десятичную точку), и вы хотите, чтобы после десятичной точки было 4 цифры, ваша строка формата должна выглядеть как «% 8.4f» ...

Насколько мне известно в Java нет «встроенной поддержки», кроме гибкости строк формата.

17
ответ дан 29 November 2019 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: