Я пытаюсь найти в среднем 3 балла, которые я прошу пользователя ввести

1

Я пытаюсь понять, почему мой вклад в очки 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);

Теги:
mean

1 ответ

2

Это связано с тем, что функция 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);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню