我是初学者,我正在尝试格式化输出 我正在尝试生成一个小数表:
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
row = (double) 5*i;
column = (double) j + 1;
System.out.format("% 6.3f", row/column);
System.out.print("\t");
}
System.out.format("%n");
}
这会产生:
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
5.000 2.500 1.667 1.250 1.000 0.833 0.714 0.625
10.000 5.000 3.333 2.500 2.000 1.667 1.429 1.250
15.000 7.500 5.000 3.750 3.000 2.500 2.143 1.875
20.000 10.000 6.667 5.000 4.000 3.333 2.857 2.500
25.000 12.500 8.333 6.250 5.000 4.167 3.571 3.125
30.000 15.000 10.000 7.500 6.000 5.000 4.286 3.750
35.000 17.500 11.667 8.750 7.000 5.833 5.000 4.375
API说如果没有抛出' - '标志,那么输出将是右对齐的,这就是我想要的。我在'%之后'表示我希望在必要时用空格填充输出。我错过了什么?
(我没有使用过家庭作业标签,因为我没有参加任何课程。)
答案 0 :(得分:2)
您在格式化字符串中错误地添加了空格:
System.out.format("% 6.3f", row/column);
应该是:
System.out.format("%6.3f", row/column);
你得到:
0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
5.000 2.500 1.667 1.250 1.000 0.833 0.714 0.625
10.000 5.000 3.333 2.500 2.000 1.667 1.429 1.250
15.000 7.500 5.000 3.750 3.000 2.500 2.143 1.875
20.000 10.000 6.667 5.000 4.000 3.333 2.857 2.500
25.000 12.500 8.333 6.250 5.000 4.167 3.571 3.125
30.000 15.000 10.000 7.500 6.000 5.000 4.286 3.750
35.000 17.500 11.667 8.750 7.000 5.833 5.000 4.375