如何格式化数字0..9以显示2位数(它不是日期)

rea*_*ebo 185 java number-formatting

我想总是显示一个低于100的2位数字(例如:03,05,15 ......)

如何在不使用条件的情况下追加0以检查它是否低于10?

我需要将结果追加到另一个String,所以我不能使用printf.

ben*_*y23 479

您可以使用:

String.format("%02d", myNumber)
Run Code Online (Sandbox Code Playgroud)

另见javadocs

  • @Fra,然后你会使用`String.format("%02.0f",myNumber)`如果你不想要小数点后面的数字 (2认同)

Pet*_*rey 51

如果您需要打印该号码,可以使用printf

System.out.printf("%02d", num);
Run Code Online (Sandbox Code Playgroud)

您可以使用

String.format("%02d", num);
Run Code Online (Sandbox Code Playgroud)

要么

(num < 10 ? "0" : "") + num;
Run Code Online (Sandbox Code Playgroud)

要么

(""+(100+num)).substring(1);
Run Code Online (Sandbox Code Playgroud)

  • 使用格式是迄今为止最慢的,但它更清晰,不太可能出现严重错误。例如,如果 num 是 -1。;) (3认同)

Dan*_*dré 38

你可以用这个:

NumberFormat formatter = new DecimalFormat("00");  
String s = formatter.format(1); // ----> 01
Run Code Online (Sandbox Code Playgroud)


小智 6

String 类具有格式功能:

System.out.println(String.format("%02d", 5));
Run Code Online (Sandbox Code Playgroud)

有关完整文档,这里是文档