我第一次使用Java编程,有人告诉我这个网站是一个很好的编程帮助来源。
我现在有点困难,因为我在用美元输入数字并按小数点对齐它们时遇到了麻烦。分配本身让用户输入初始存款和利率。然后,当您的初始存款翻倍时,该计划将停止。一切都按预期工作,但我无法让小数对齐。
while(Total < Deposit*2 )
{
Total = Total*(InterestRate/100+1.00);
Year = (Year + 1);
System.out.printf("%-16s %-24s %-15sn", Year + ".", fmt.format((Total-Deposit)), fmt.format(Total));
}
间距并将其放入货币格式不是问题,但截至目前,它对齐了美元符号。我个人认为它看起来更好,但教授说他希望小数点对齐,现在我死心塌地地想弄清楚。
我见过
String.format("%8.3f", number)
但是我不知道如何让它合并到我当前的代码中。
删除fmt.format
并使用新格式,
而不是:
fmt.format((Total-Deposit))
只需使用:
Total - Deposit
并将格式从%-24s
更改为%8.3f
"s"格式 字符串和"f"格式浮点数
格式取决于双精度值的长度。例如,对于total
、deposit
等的随机值。部分结果如下所示。(不确定这是否是预期的(:
5. -18950.0000000000000 1050.000000000000
6. -18897.5000000000000 1102.500000000000
7. -18842.3750000000000 1157.625000000000
8. -18784.4937500000000 1215.506250000000
9. -18723.7184375000000 1276.281562500000
10. -18659.9043593750000 1340.095640625000
11. -18592.8995773437500 1407.100422656250
我为此使用了下面的代码,
while(total < deposit*2 ) {
total = total*(interestRate/100+1.00);
year = (year + 1);
System.out.printf("%3s t %19.13f t %17.12fn", year + ".", total - deposit, total);
}
在这里,19.13f
19 是指包括小数位在内的数字的总长度,而 13 仅指小数部分。