논리적 사고

자바스크립트는 −1.5를 왜 −1로 반올림할까요?

가장 가까운 정수가 둘이면 어떤 규칙을 써야 할까요? Math.round를 실행하고 음의 영까지 확인합니다.

−1.5에서 같은 거리인 −2와 −1 중 양의 방향인 −1을 선택하는 규칙
−1.5에서 같은 거리인 −2와 −1 중 양의 방향인 −1을 선택하는 규칙
그림 크게 열기 ↗SVG 저장

그림에서 무엇을 볼까요?

−1.5에서 같은 거리인 −2와 −1 중 양의 방향인 −1을 선택하는 규칙

−1.5에서 −2까지의 거리도 0.5이고 −1까지의 거리도 0.5입니다. ‘가장 가까운 정수’라는 설명만으로는 결과를 하나 고를 수 없습니다. 같은 거리일 때 적용할 추가 규칙이 필요합니다.

자바스크립트의 Math.round는 이 경우 양의 무한대 쪽, 즉 숫자선 오른쪽의 정수를 고릅니다. 따라서 1.5는 2, −1.5는 −1입니다. 음수에서 숫자가 커지는 방향과 절댓값이 커지는 방향은 서로 다릅니다.

함께 확인할 점

미리 작성한 결과 표를 바꾸는 대신 실제 Math.round와 Object.is를 실행합니다. 입력 범위는 −5~5입니다.

생각해 볼 질문

음수에서 ‘올린다’고 설명할 때 어느 방향을 뜻하는지 어떻게 명확히 적을까요?

← 논리적 사고 그림 더 보기