Я хотел бы варьироваться точность двойного представления в строке, которую я форматирую на основе ввода данных пользователем. Прямо сейчас я пробую что-то как:
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);
но я все еще интересовался бы собственной поддержкой такой операции.
Вы вроде как ответили на свой вопрос - создавайте строку формата динамически ... допустимые строки формата соответствуют соглашениям, изложенным здесь: http: // java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html#syntax.
Если вам нужна отформатированная десятичная дробь, которая занимает всего 8 символов (включая десятичную точку), и вы хотите, чтобы после десятичной точки было 4 цифры, ваша строка формата должна выглядеть как «% 8.4f» ...
Насколько мне известно в Java нет «встроенной поддержки», кроме гибкости строк формата.