我想在Java中以格式XX:00显示一个数字。我该怎么办?
Ex:int number = 12; 显示12:00。
double i = 12;
show 12:00
答案 0 :(得分:1)
如果12.0是要用冒号作为小数分隔符打印的小数:
double i = 12;
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator(':');
NumberFormat format = new DecimalFormat("00.00", dfs);
System.out.println(format.format(i));
输出:
12:00
如果i
为12.75而不是12,则也会打印分数:
12:75
它舍入到最接近的数字,带有两位小数,因此12.756将打印为12:76
。
如果你的12:00
表示一段时间,一小时和几分钟的持续时间,我们想要一些不同的东西,因为一小时有60分钟,而不是100.这里是 Java 9 和更高版本:
long totalMinutes = (long) (i * TimeUnit.HOURS.toMinutes(1));
Duration dur = Duration.ofMinutes(totalMinutes);
System.out.format("%02d:%02d%n", dur.toHours(), dur.toMinutesPart());
打印
12:00
或在12.75案例中:
12.75等于12和4个季度,45印刷也等于四分之三个小时,所以这就是我们想要的。它向下舍入,所以即使12.759等于12小时45分32.4秒,它仍然打印为12:45
12:45
。
Java 8及更早版本:
我使用的toMinutesPart
方法是在Java 9中引入的。在Java 8(及更早版本)中,您仍然可以使用Duration
类,但它不太有利,所以您也可能没有它:
int hours = (int) i;
long minutesOnly = totalMinutes - TimeUnit.HOURS.toMinutes(hours);
System.out.format("%02d:%02d%n", hours, minutesOnly);
现在结果与上面相同。
答案 1 :(得分:0)
double i = 12;
String.format("%.0f:00", i); // returns 12.00