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 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);

我在下面添加了两张图片,展示了我在运行程序时看到的内容以及程序在下面两个链接中的外观。

这是我收到的输出

表格应该是这样的

最佳答案

问题是运算符优先级。 ?: 条件运算符的优先级低于 +,因此 : 部分包含所有连接的字符串,而不仅仅是 "" 应该替换年份的字符串。因此,当 yearChange 为真时显示年份,只有当 yearChange 为假时才显示其他所有内容。

解决方案是将条件表达式括在括号中。

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);

关于javascript - 表格打印错误的 JavaScript 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49785602/

相关文章:

javascript - 如何在控制台停靠在底部而不是右侧的情况下在 Chrome 中启动测试?

javascript - 连续 AJAX 调用 block 页面,Firefox

javascript - Canvas DrawImage() 质量差

javascript - 获取每个 tr 的 ID 不起作用

javascript - Laravel - 返回 405 GET 方法不允许在服务器上

javascript - 使用 Iframe 的跨站点脚本

javascript - 在 templates-nodejs 中链接 url

javascript - 当外部值发生变化时如何使组件重新渲染?

java - ScriptEngineManager 可以给我它刚刚用 Java 编译的 Javascript 函数的名称吗

javascript - 除了网址之外