Я пытаюсь найти в среднем 3 балла, которые я прошу пользователя ввести - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь понять, почему мой вклад в очки 1, 2 и 3
принимаются в виде строки. Пример: оценка1 = 1, оценка2 = 1, оценка3 = 1. Средняя оценка рассчитывается как 111/3, а не 3/3 ..

  player1 = prompt(" Welcome Player 1! Please Enter your name ");
  alert(" Hello, " + player1+".");


  p1score1 = prompt(' Enter first score. ');
  p1score2 = prompt(' Enter second score. ');
  p1score3 = prompt(' Enter third score. ');

  /*p1score1 = 89;
  p1score2 = 120;
  p1score3 = 103;
  */

  p1avgScore = (p1score1 + p1score2 + p1score3)/3;

  console.log(" Congratulations " + player1 + ". Your scores are: " + 
  p1score1 + ", " + p1score2 + ", " + p1score3 + ".");
  console.log(" Your average score of all three games are: " + 
  p1avgScore);

1 Ответ

0 голосов
/ 10 января 2019

Это связано с тем, что функция prompt() возвращает строку , а не число, из-за которого (p1score1 + p1score2 + p1score3) создает конкатенацию строк p1score1, p1score2 и p1score3, а не выполнить искусственное (то есть сложение) всего на общую сумму.

Рассмотрим следующую корректировку с добавлением parseFloat() для решения этой проблемы:

p1score1 = parseFloat( prompt(' Enter first score. ') );
p1score2 = parseFloat( prompt(' Enter second score. ') );
p1score3 = parseFloat( prompt(' Enter third score. ') );

При этом результат каждого prompt() анализируется с числом, что означает, что типы значений для p1score1 и т. Д. Равны number. Теперь это означает, что в этой строке будет выполняться сложение, а не конкатенация строк:

(p1score1 + p1score2 + p1score3)/3

Надеюсь, это поможет!

var player1 = prompt(" Welcome Player 1! Please Enter your name ");
alert(" Hello, " + player1 + ".");


var p1score1 = parseFloat(prompt(' Enter first score. '));
var p1score2 = parseFloat(prompt(' Enter second score. '));
var p1score3 = parseFloat(prompt(' Enter third score. '));

var p1avgScore = (p1score1 + p1score2 + p1score3) / 3;

console.log(" Congratulations " + player1 + ". Your scores are: " +
  p1score1 + ", " + p1score2 + ", " + p1score3 + ".");
console.log(" Your average score of all three games are: " +
  p1avgScore);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...