System.out.println("Year StartBalance Interest Earned End Balance");
for (int i = 1; i<Years+1; i++) { //table: year number, principal at beginning, total interest earned, principal at the end
double AmountPerQuarter = (Principal * (1 + Rate/400));
NewPrincipal = AmountPerQuarter;
double InterestEarned = NewPrincipal - Principal;
System.out.printf(i+ "%13s %15s %22s",Principal,InterestEarned,NewPrincipal);
Principal = NewPrincipal;
}
嗨,我是一名计算机科学专业的学生,在这个例子中我对格式有点困惑。
这应该做的是,在顶部创建带有Year,StartBalance等的表,然后将该段打印为一行,然后当循环重复时,它将开始一个新行,但是使用printf,循环所做的一切只是打印在一行上,这抵消了我试图用表做的事情。
例如,它最终会像:
Year StartBalance InterestEarned Endbalance
1..........500................20............520252040580
而不是第二年开始新的一行。
另外,作为一个附带问题,当我使用&#34;%13s&#34;等格式时要创建13个空格,我怎样才能将它打印成四舍五入到两位小数?我知道&#34;%。2f&#34;是什么用的,但是我不确定如何将它们组合在一起,这样我就可以创建13个空格,并且数字带有舍入的十进制空格。
对不起,如果这似乎不清楚,我已经尝试过搜索,但无法找到答案。
谢谢!
答案 0 :(得分:1)
要创建新行,您需要新行字符,可以通过添加\n
或使用空白System.out.println("");
(创建新行字符)来创建)。这是前者:
更改
System.out.printf(i+ "%13s %15s %22s",Principal,InterestEarned,NewPrincipal);
要
System.out.printf(i+ "%13s %15s %22s\n",Principal,InterestEarned,NewPrincipal);
答案 1 :(得分:0)
换行需要%n
,整数也是%d
。像
System.out.printf("%12d %13s %15s %22s%n", i, Principal, InterestEarned,
NewPrincipal);