Why is this Java formatted output not right-justified?

时光毁灭记忆、已成空白 提交于 2019-12-24 10:15:22

问题


I'm a beginner, and I'm experimenting with formatted output.
I'm trying to produce a table of decimals:

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 produces:

 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 output will be right-justified, which is what I want. I have put ' ' after % to indicate that I want the output padded with spaces when necessary. What am I missing?

(I haven't used the homework tag, because I am not enrolled in any course.)


回答1:


You have added a space incorrectly into the formatting String:

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  


来源:https://stackoverflow.com/questions/828771/why-is-this-java-formatted-output-not-right-justified

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!