两个数字不相加

时间:2018-11-25 19:38:33

标签: javascript math

首先,我是JavaScript的新手。我正在制作一个小费计算器,但是这些数字并没有达到预期的水平。

  function calculate(bill, tip, people){
    var tip = bill * tip / 100;        
    // Total
    console.log("Total: " + tip + bill / people);
    // Tip
    console.log("Tip: " + tip);

  }
  calculate(100, 5, 1);

我期望的输出是:Total: 105,但是我得到的是Total: 5100。我在这里做什么错了?

2 个答案:

答案 0 :(得分:2)

问题是您将数字连接为字符串而不是计算。将计算放在括号内,然后进行串联:

function calculate(bill, tip, people) {
  var tip = bill * tip / 100;
  // Total
  console.log("Total: " + (tip + bill / people));
  // Tip
  console.log("Tip: " + tip);

}
calculate(100, 5, 1);

答案 1 :(得分:0)

   "Total: " + tip + bill / people

那将首先计算除法,所以是:

 "Total: " + tip + /*value*/

现在它是从左到右求值的,因此字符串和tip会串联在一起,这会将tip变成字符串:

 "Total: tip" + /*value*/

现在第二次进行字符串连接了,结果是:

  "Total: tipvalue"

要更改评估顺序,可以使用(...)来包装必须首先完成的操作,在这种情况下为(tip + bill / people)

相关问题