代码:

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。所需的输出如下所示。

javascript - Javascript程序在表输出中引发不必要的间隙-LMLPHP

谢谢你的时间。

最佳答案

有两点要更改:


将付款初始化为0而不是1:

var payments = 0;

在三元运算符周围使用括号,因为它没有优先于其后的+

console.log((yearChange? year: "") + "        " + balance.toFixed(2) +
    // ...etc.



由于月份数字从零开始,因此您可能希望在其显示中添加一个,如下所示:

        "      " + (payments+1) +


或者,将以下增量移到console.log之前:

        payments++;

09-25 18:20
查看更多