Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript程序在表输出中抛出不需要的间隙_Javascript - Fatal编程技术网

Javascript程序在表输出中抛出不需要的间隙

Javascript程序在表输出中抛出不需要的间隙,javascript,Javascript,守则: 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

守则:

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

谢谢你抽出时间

有两件事需要改变:

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

    var payments = 0;
    
  • 在三元运算符周围使用括号,因为它不优先于其后的
    +

    console.log((yearChange? year: "") + "        " + balance.toFixed(2) +
        // ...etc.
    
  • 由于月份数字是以零为基础的,您可能希望在其显示中添加一个,如下所示:

            "      " + (payments+1) + 
    
    或者,将以下增量移动到
    控制台.log之前:

            payments++;
    

    您不想改为在html表格上显示输出吗?@funcoding否,仅根据要求在控制台中显示。另外,使间距更一致的一种方法是使用制表符
    \t
    而不是空格。另外,如何使首分钟付款显示为$30.00而不是$29.85?我尝试将.15添加到console.log中,但没有成功。请在
    余额=
    之前移动
    minimumPayment=
    以获取第一行最后一列中的
    30.00
    。@trincot成功了!谢谢你的帮助!