ParoX
ParoX

Reputation: 5941

How to add leading zeros and specify decimal figures at the same time with printf

I know how to do X amount of leading zeros, and I know how to do X amount of decimal points. But how do I do them both?

I am looking to have 4 leading zeros with a decimal precision of 2: 0000.00. Therefore 43.4 would be 0043.40

Upvotes: 15

Views: 10378

Answers (3)

Mustafa Zengin
Mustafa Zengin

Reputation: 3033

Here is the code you need:

float myNumber = 43.4;
DecimalFormat formatter = new DecimalFormat("0000.00"); //use # for optional digits instead of 0
System.out.println(formatter.format(myNumber));

Upvotes: 9

Leni Kirilov
Leni Kirilov

Reputation: 1317

Java: use the Formatter class. Examples of expected usage:

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)"

Upvotes: 0

Marcelo Cantos
Marcelo Cantos

Reputation: 186098

Try this printf (C, Perl, PHP) format string:

"%07.2f"

Upvotes: 23

Related Questions