AI 보이는 추론 실험실

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

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

탐구게시 2026-10-25읽기·실험 약 11분확인 문제 2개규칙 기반 실행한국논리학협회 자체 제작제작·검수 LTCT 편집부

두 사람이 −2, −1.5, −1 숫자 카드를 비교하고, 작은 공식 올리가 몸을 낮추고 한쪽 날개로 숫자선을 살피는 장면
주제 이해를 돕는 AI 생성 연출 사진 · 주제 이해를 돕기 위한 AI 생성 이미지 · LTCT 자체 제작
오늘의 질문

AI가 Math.round(-1.5)의 결과를 −2라고 설명했습니다. 숫자선과 실제 자바스크립트 실행으로 어떻게 확인할까요?

−1.5에서 같은 거리인 −2와 −1 중 양의 방향인 −1을 선택하는 규칙
−1.5에서 같은 거리인 −2와 −1 중 양의 방향인 −1을 선택하는 규칙 · 한국논리학협회 자체 제작
그림 크게 보기 ↗
01

가장 가까운 정수가 두 개라면 어떻게 하나요?

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

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

참고 · Ecma TC39 — 자바스크립트 반올림 규칙 ↗

02

−1.51과 −1.49도 같은 규칙을 쓰나요?

−1.51은 −1보다 −2에 더 가깝습니다. Math.round(-1.51)은 −2입니다. −1.49는 −1에 더 가까워 −1이 됩니다. 중간값의 동률 처리 규칙은 두 거리가 정확히 같은 경우에 적용됩니다.

활동의 입력을 −1.51, −1.5, −1.49로 바꾸며 양옆 정수와의 거리를 살펴보세요. 예상 결과를 먼저 고르고 실행하면 ‘음수는 모두 한쪽으로 간다’는 잘못된 규칙을 반례로 바로잡을 수 있습니다.

03

0처럼 보이는 결과가 왜 −0일 수 있나요?

Math.round(-0.5)의 결과는 음의 영, −0입니다. 화면에 단순히 문자열로 바꾸면 0처럼 보일 수 있고, −0과 0을 ===로 비교하면 참입니다. 그렇다고 두 값의 부호 정보가 모든 연산에서 같다는 뜻은 아닙니다.

Object.is(result, -0)은 음의 영을 구별합니다. 또 1을 +0으로 나눈 결과는 Infinity이고 −0으로 나눈 결과는 -Infinity입니다. 이 실험은 실제 브라우저에서 Math.round와 Object.is를 실행하고 부호를 명시해 표시합니다.

참고 · MDN Web Docs — 반올림과 음의 영 ↗

04

다른 반올림 방법을 가져오면 왜 위험한가요?

앞선 반올림 글에서는 가까운 짝수와 0에서 먼 쪽 등 여러 정책을 비교했습니다. 그때의 정책 이름을 자바스크립트 함수에 그대로 붙이면 음수의 중간값에서 결과가 달라질 수 있습니다. 이번 글은 Math.round라는 특정 함수의 실제 동작을 확인합니다.

Math.floor(x+0.5)를 언제나 같은 계산으로 대체할 수도 없습니다. 예를 들어 x가 −0.5이면 Math.round는 −0을 유지하지만 덧셈 후 floor는 +0이 됩니다. 큰 값이나 이진 부동소수점 경계에서는 표현 오차도 따로 살펴야 합니다.

참고 · MDN Web Docs — 반올림과 음의 영 ↗

05

AI가 만든 코드의 설명을 어떻게 검토하나요?

먼저 함수 이름과 입력의 부호, 처리할 자릿수, 중간값 정책을 확인합니다. 다음에는 양수 중간값, 음수 중간값, 중간값 양옆, 영 근처를 시험합니다. 결과 숫자만 보여 주지 말고 어떤 규칙으로 골랐는지 설명하게 해 보세요.

이 활동의 범위는 −5에서 5까지의 유한한 Number 값입니다. 금융·통계·문서 표시에는 목적에 맞는 별도 정책이 필요할 수 있습니다. 표시용 반올림과 다음 계산에 사용할 원자료를 바꾸는 일도 구별합니다.

직접 확인하기 · 규칙 기반 실행

예상한 뒤 실제 Math.round 결과를 확인해 볼까요?

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

양수와 음수의 중간값을 같은 함수로 확인해 볼까요?

Math.round(-1.5) = -1

아래쪽 정수 -2

거리 0.5

위쪽 정수 -1

거리 0.5

두 정수까지 거리가 같습니다. 이때 Math.round는 수직선에서 오른쪽, 즉 양의 무한대 방향의 정수를 선택합니다.

Object.is(결과, -0): false

실제 JavaScript Math.round를 실행합니다. ‘절댓값을 반올림하고 부호를 붙인다’는 규칙과는 다릅니다. −0.5도 눌러서 결과를 비교해 보세요.

관계를 읽고, 다른 상황에 적용하기

두 문제로 생각 확인

1Math.round(-2.5)의 결과는 무엇인가요?
2Math.round(-0.5)가 0처럼 표시됐습니다. 음의 영인지 확인하는 방법은?

두 문제의 답을 모두 선택하면 해설을 볼 수 있습니다.

나의 설명으로 마무리

오늘 발견한 관계

저장 위치를 확인하고 있습니다…

출처와 제작 안내

원문을 참고해 설명·도표·문항·실험을 새로 작성했습니다. 별도 표시가 없는 사례와 수치는 학습을 위한 가상 예시입니다. 원문 번역이나 실제 모델의 성능 평가 자료가 아닙니다.

  1. 자바스크립트 반올림 규칙 ↗Ecma TC39Math.round

    중간값에서 양의 무한대 방향 선택, −0 보존 · 2026-10-25 확인. 예시·계산·활동은 자체 구성.

  2. 반올림과 음의 영 ↗MDN Web DocsMath.round()

    음수 예와 Math.floor(x+0.5)의 차이 · 2026-10-25 확인. 예시·계산·활동은 자체 구성.