5

在Java中,我有以下代码:

System.out.printf("%05.5f", myFloat);

这适用于任何小于 10 的数字,但对于任何 10 或更大的数字,小数位被修剪为 5,但这并不能弥补小数点前的数字更长的事实。我想做以下其中一项:

12.3456
1.23456

(即相同的位数),或:

12.34567
 2.34567

(即,用空格填充,使小数点和最后一位数字对齐)。

如果我可以让其中任何一个工作,我会很高兴(两者都会更好!)。

有什么想法吗?谢谢!

4

1 回答 1

7

我想出了如何做到这一点:

12.34567
 2.34567

给定一个类似的格式字符串"%x.yf",它将以最小宽度x和后小数点精度进行格式化y。由于小数点前的数字和小数点本身计入最小宽度 ( x),因此宽度必须至少比精度大两倍。特别是,如果打印的数字比最小宽度宽,它不会与相邻的行很好地对齐,因为这些行会更短。例如,如果我们尝试打印10.1,然后1.1宽度为 3,精度为 1,我们将得到:

10.1
1.1

但是,如果我们使用 4 的宽度,1.1将被填充,因为它不是最小宽度:

10.1
 1.1
于 2013-07-10T19:00:37.603 回答