printf how to do floating points with leading zeros
I know how to do X amount of leading zeros, and I know how to do X amount of decimal p开发者_开发知识库oints. But, how do I do them both?
I am looking to have 4 leading zeros to a decimal precision of 2: 0000.00. Therefore 43.4 would be 0043.40
Try this printf
(C, Perl, PHP) format string:
"%07.2f"
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));
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)"
精彩评论