在Java中,我有以下代码:
System.out.printf("%05.5f", myFloat);
这适用于任何小于10的数字,但对于任何数字10或更大,小数位被修剪为5,但这并不能补偿小数点前的数字更长的事实。我想做以下其中一项:
12.3456
1.23456
(即相同的位数)或:
12.34567
2.34567
(即填充空格,以便小数点和最后一位数对齐)。
如果我能够工作,我会很高兴(两者都会更好!)。
有什么想法?谢谢!
答案 0 :(得分:7)
我想出了如何做到这一点:
12.34567
2.34567
给定类似"%x.yf"
的格式字符串,它将格式化为最小宽度x
和小数点后精度y
。由于小数点前小数位和小数点本身计入最小宽度(x
),因此宽度必须至少比精度大两倍。特别是,如果打印的数字比最小宽度宽,则它不会与相邻的线很好地对齐,因为这些线会更短。例如,如果我们尝试打印宽度为3且精度为1的10.1
然后1.1
,我们将会得到:
10.1
1.1
但是,如果我们使用4的宽度,1.1
将被填充,因为它不是最小宽度:
10.1
1.1