Два числа не складываются - PullRequest
0 голосов
/ 25 ноября 2018

Я новичок в 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 голосов
/ 25 ноября 2018
   "Total: " + tip + bill / people

Сначала будет вычислено деление, поэтому оно выглядит так:

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

Теперь оно вычисляется слева направо, поэтому строка и tip получают конкатенации, что превращает tipв строку:

 "Total: tip" + /*value*/

Теперь конкатенация строк выполняется во второй раз, и вы получите:

  "Total: tipvalue"

, чтобы изменить порядок оценки, вы можете использовать (...) для переносаоперации, которые должны быть выполнены в первую очередь, в этом случае (tip + bill / people)

0 голосов
/ 25 ноября 2018

Проблема в том, что вы объединяете числа в виде строки, а не вычисляете.Поместите вычисление в круглые скобки и затем объедините:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...