我目前正在学习如何在java中格式化并遇到以下问题
我有
System.out.format("%6f%n", 123.0);
我希望结果为123.0
,左边有一个空格(即输出的最小长度为6)。但是,相反,我有
123.000000 //with no blank space on the left
为什么会这样?为什么小数点后有6个0?有人可以向我解释一下吗?
答案 0 :(得分:1)
您需要指定小数点后面的位数。如果不这样做,则假定为6位数。所以你可以这样做:
System.out.format("%6.1f%n", 123.0);
来自Javadoc:
m或a的小数部分的结果中的位数 等于精度。 如果没有指定精度,那么 默认值为6. 如果精度小于位数 这将出现在返回的字符串中的小数点之后 然后分别是Float.toString(float)或Double.toString(double) 使用舍入的半向上算法对该值进行舍入。 否则,可以附加零以达到精度。