java - 如何以美元格式化双精度并按小数对齐?
问题描述
我正在上我的第一个使用 Java 的编程课程,有人告诉我这个站点是一个很好的编程帮助来源。
我现在有点困难,因为我无法将数字以美元表示,也无法按小数点对齐。分配本身让用户输入初始存款和利率。当您的初始存款翻倍时,该程序将停止。一切都按预期工作,但我无法对齐小数点。
while(Total < Deposit*2 )
{
Total = Total*(InterestRate/100+1.00);
Year = (Year + 1);
System.out.printf("%-16s %-24s %-15s\n", Year + ".", fmt.format((Total-Deposit)), fmt.format(Total));
}
间距并将其放入货币格式不是问题,但截至目前,它与美元符号对齐。我个人认为它看起来更好,但教授说他希望小数点对齐,现在我已经死心塌地想弄清楚了。
我见过
String.format("%8.3f", number)
但我不知道如何将它合并到我当前的代码中。
解决方案
格式取决于您的 Double 值可以有多长。例如,对于一些随机值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.12f\n", year + ".", total - deposit, total);
}
这里,19.13f
19 是指包括小数位在内的数字的总长度,而 13 仅指小数部分。
推荐阅读
- python - 如何在没有 ImageNet 权重的情况下进行迁移学习?
- swift - UIButton 在子视图控制器中不起作用
- c++ - 使用 c++17 进行 VsCode 调试失败?
- github - 在 GitHub 存储库中完成拉取请求后摆脱提交
- python - 如何在熊猫中删除计数和总和为 1 的行
- c++ - 我想在 C++ 中找到日期的周数
- javascript - 如何避免使用 JavaScript 和 NodeJS 以逗号分隔的字符串中的数组中的空对象?
- laravel - 使用带有 Laravel 的 Outlook / Office365 发送电子邮件 - 无法在 SMTP 服务器上进行身份验证
- sql - 如何将表变量中的所有不同值分配给表中现有行中的字段?
- cypress - How to get hidden iframe element in Cypress? And how to write in it?