嘿,我挖了一段时间,但无法找到相关的问题。我正在编写一个程序,输出一个表格,列出信用卡用户的最低付款和余额。问题出现在代码的最后一部分,我必须在输出之间放置空格,并将输出格式化为2位小数。
提前致谢!
我的代码:
public static void main(String[] args) {
double minPay = 0;
Scanner key = new Scanner(System.in);
System.out.printf("Please Enter your credit card balance: ");
double balance = key.nextDouble();
System.out.printf("Please Enter your monthly interest rate: ");
double rate = key.nextDouble();
System.out.printf("%-6s%-10s%-10s\n", "", "Min.Pmt", "New Balance");
System.out.printf("------------------------------\n");
for (int i=0; i<12; i++){
minPay = balance*0.03;
if (minPay<10){
minPay=10.00;
}
double add = (balance*(rate/100));
balance += add;
balance -= minPay;
System.out.printf("%-6s%-10.2f%-10.2f\n", i+1 + ".", "$" + minPay, "$" + balance);
答案 0 :(得分:1)
在最后一行中,您将为printf参数创建两个字符串,而不是格式字符串所需的浮点数。在Java中,当您向某个字符串“添加”字符串时,另一个参数将转换为字符串,结果是另一个字符串。
将美元符号移动到printf格式字符串中,并将参数作为浮点数传递。
答案 1 :(得分:0)
使用DecimalFormat
格式化任意数字
DecimalFormat df = new DecimalFormat("0.00");
String result = df.format(44.4549);