[java] How to format a number 0..9 to display with 2 digits (it's NOT a date)

I'd like to always show a number under 100 with 2 digits (example: 03, 05, 15...)

How can I append the 0 without using a conditional to check if it's under 10?

I need to append the result to another String, so I cannot use printf.

This question is related to java number-formatting

The answer is


If you need to print the number you can use printf

System.out.printf("%02d", num);

You can use

String.format("%02d", num);

or

(num < 10 ? "0" : "") + num;

or

(""+(100+num)).substring(1);

I know that is late to respond, but there are a basic way to do it, with no libraries. If your number is less than 100, then:

(number/100).toFixed(2).toString().slice(2);


The String class comes with the format abilities:

System.out.println(String.format("%02d", 5));

for full documentation, here is the doc


In android resources it's rather simple

<string name="smth">%1$02d</string>

You can use this:

NumberFormat formatter = new DecimalFormat("00");  
String s = formatter.format(1); // ----> 01