강의로 돌아가기
-

뭐가 잘못 된건가요? 정답은 2로 뜨는데요.

function average(array){
var sum=0;
for(var i=0; i<array.length; i++){

sum += array[i];
}

return parseInt(sum/array.length);
}
console.log(average([1,2,3]));

작성중인 코드―getMean.js
1
2
3
4
5
function average(array){
  //함수를 완성하세요
}

console.log(average([1,2,3]));
3 개의 답변
-

parseInt를 왜 사용하신거죠??

-

평균을 정수로 받고 싶어서요.

Maxima

parseInt()때문이네요.
parseInt는 정수로 형변환 하는 함수기 때문에, 나눗셈으로 인해 계산 결과가 소수점으로 나오게 되는 것을 int형으로 바꿔주어 틀린값이 나오는 것 입니다. 예를들어 평균이 실수 12.4로 나올 경우, 정수 12로 바꿔버려 틀리다고 계산되는 거죠
Javascript에는 하나의 숫자형만 존재하며, 모든 숫자를 64비트(C언어의 double 타입) 부동 소수점 형태로 저장합니다. 모든 숫자를 실수로 처리하기 때문에 나눗셈 연산을 할 때는 특히 주의하셔야 합니다.
저 코드에서 parseInt()를 빼거나, parseFloat()로 바꾸면 될 것입니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.