Why isn't this Java formatting result warranted?
I am a beginner and I am experimenting with formatted output.
I am trying to create a decimal place table:
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");
}
This gives:
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
The API says that if the "-" flag is not thrown, then the result will be correct, which is what I want. I put '' after% to indicate that I want the output to be padded with spaces when needed. What am I missing?
(I haven't used the homework tag because I am not enrolled in any course.)
+1
a source to share
1 answer
You have incorrectly added a space to your String formatting:
System.out.format("% 6.3f", row/column);
Should be:
System.out.format("%6.3f", row/column);
And you get:
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
+2
a source to share