System.out.format的输出(“%6f%n”,123.0);不像预期的那样

时间:2016-12-07 03:55:01

标签: java format

我目前正在学习如何在java中格式化并遇到以下问题

我有

System.out.format("%6f%n", 123.0);

我希望结果为123.0,左边有一个空格(即输出的最小长度为6)。但是,相反,我有

123.000000 //with no blank space on the left 

为什么会这样?为什么小数点后有6个0?有人可以向我解释一下吗?

1 个答案:

答案 0 :(得分:1)

您需要指定小数点后面的位数。如果不这样做,则假定为6位数。所以你可以这样做:

System.out.format("%6.1f%n", 123.0);

来自Javadoc

  

m或a的小数部分的结果中的位数   等于精度。 如果没有指定精度,那么   默认值为6. 如果精度小于位数   这将出现在返回的字符串中的小数点之后   然后分别是Float.toString(float)或Double.toString(double)   使用舍入的半向上算法对该值进行舍入。   否则,可以附加零以达到精度。