代码:
function displayWelcome() {
console.log("Welcome! \nThis program will determine the time to pay off a credit card and the interest paid based on the current balance, the interest rate, and the monthly payments made.")
}
function calculateminimumPaymentment(balance, minimumPaymentRate) {
return Math.max(20, balance * minimumPaymentRate);
}
function displayPayments(balance, interest, minimumPayment) {
console.log("Balance on your credit card: $" + balance.toFixed(2))
console.log("Interest Rate: " + (interest * 100) + "%")
console.log("Assuming a minimum payment of 2% of the balance ($20 min)")
console.log("Your minimum payment would be: $" + minimumPayment)
console.log("\nYear Balance Payment # Interest Paid Minimum Payment")
var year = 1;
var payments = 1;
var interestPaid = 0;
var yearChange;
while (balance > 0) {
yearChange = false;
if (payments % 12 == 0) {
year++
yearChange = true;
}
interestPaid += balance * interest / 12;
balance = Math.max(0, balance - (minimumPayment - balance * interest / 12));
minimumPayment = Math.max(20, balance * minimumPaymentRate);
console.log(yearChange? year: "" + " " + balance.toFixed(2) + " " + payments + " " + interestPaid.toFixed(2) + " " + minimumPayment.toFixed(2));
payments++;
}
}
var balance = 1500;
var minimumPaymentRate = 0.02;
var interest = 0.18;
displayWelcome()
var minimumPayment = calculateminimumPaymentment(balance, minimumPaymentRate);
displayPayments(balance, interest, minimumPayment);
输出
Year Balance Payment # Interest Paid Minimum Payment
1492.50 1 22.50 29.85
1485.04 2 44.89 29.70
1477.61 3 67.16 29.55
1470.22 4 89.33 29.40
1462.87 5 111.38 29.26
1455.56 6 133.32 29.11
1448.28 7 155.16 28.97
1441.04 8 176.88 28.82
1433.83 9 198.50 28.68
1426.67 10 220.00 28.53
1419.53 11 241.40 28.39
2
1405.37 13 283.88 28.11
1398.35 14 304.96 27.97
1391.35 15 325.94 27.83
1384.40 16 346.81 27.69
1377.47 17 367.58 27.55
1370.59 18 388.24 27.41
1363.73 19 408.80 27.27
1356.92 20 429.25 27.14
1350.13 21 449.61 27.00
1343.38 22 469.86 26.87
1336.66 23 490.01 26.73
3
我不明白如何制作它以便与年份号一起显示相应的数据,因为当我现在运行它时它会跳过其余部分并在下一行再次显示它。还想知道如何在第一行中有1表示第1年。所需的输出如下所示。
感谢您的时间。
答案 0 :(得分:3)
要改变两件事:
将付款初始化为0而不是1:
var payments = 0;
在三元运算符周围使用括号,因为它没有优先于其后的+
:
console.log((yearChange? year: "") + " " + balance.toFixed(2) +
// ...etc.
由于月份数基于零,您可能希望在其显示中添加一个,如下所示:
" " + (payments+1) +
或者,或者,在console.log
:
payments++;