printf как делать плавающие точки с ведущими нулями - PullRequest
12 голосов
/ 09 июля 2010

Я знаю, как сделать X количества ведущих нулей, и я знаю, как сделать X количества десятичных знаков. Но как мне сделать их обоих?

Я ищу 4 ведущих нуля с десятичной точностью 2: 0000.00. Поэтому 43,4 будет 0043,40

Ответы [ 3 ]

19 голосов
/ 09 июля 2010

Попробуйте эту строку формата printf ( C , Perl , PHP ):

"%07.2f"
8 голосов
/ 09 июля 2010

Вот код, который вам нужен:

float myNumber = 43.4;
DecimalFormat formatter = new DecimalFormat("0000.00"); //use # for optional digits instead of 0
System.out.println(formatter.format(myNumber));
0 голосов
/ 09 июля 2010

Java: используйте класс Formatter .Примеры ожидаемого использования:

StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb
Formatter formatter = new Formatter(sb, Locale.US);

// Explicit argument indices may be used to re-order output.
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
// -> " d  c  b  a"

// Optional locale as the first argument can be used to get
// locale-specific formatting of numbers.  The precision and width can be
// given to round and align the value.
formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
// -> "e =    +2,7183"

// The '(' numeric flag may be used to format negative numbers with
// parentheses rather than a minus sign.  Group separators are
// automatically inserted.
formatter.format("Amount gained or lost since last statement: $ %(,.2f",
                balanceDelta);
// -> "Amount gained or lost since last statement: $ (6,217.58)"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...