JavaScript에는 숫자를 정수로 변환하는 여러 내장 메서드가 있으며, 그중 가장 널리 사용되는 것이 Math.ceil()과 Math.round()입니다. 두 메서드는 이름은 비슷하지만 동작 방식이 분명히 다르므로, 상황에 맞게 올바른 메서드를 선택하는 것이 중요합니다.
Math.ceil()은 소수 부분과 관계없이 항상 큰 값 방향으로 올려 가장 가까운 정수를 반환합니다. 반면 Math.round()는 일반적인 반올림 규칙에 따라, 소수 첫째 자리가 5 이상이면 위쪽 정수로, 5 미만이면 아래쪽 정수로 처리합니다. 각 메서드를 예제와 함께 자세히 살펴보겠습니다.
Math.ceil() – 항상 올림 처리
Math.ceil() 메서드는 매개변수로 전달된 숫자를 큰 값 방향으로 올려 가장 가까운 정수를 반환합니다. 소수 부분이 아무리 작아도(예: 5.01) 무조건 한 단계 위의 정수가 된다는 점이 특징입니다.
예제
아래 예제에서 숫자 5.34를 전달하면, Math.ceil()은 원래 값보다 큰 정수인 6을 반환합니다.
console.log(Math.ceil(5.34)); // 6 console.log(Math.ceil(5.01)); // 6 console.log(Math.ceil(-5.34)); // -5 → 음수에서도 큰 쪽으로 올림
출력 결과
6 6 -5
Math.round() – 가장 가까운 정수로 반올림
Math.round() 메서드는 매개변수로 전달된 숫자를 가장 가까운 정수로 반올림합니다. 소수 첫째 자리가 5 이상이면 올리고, 5 미만이면 버립니다.
예제
아래 예제에서 숫자 5.34를 전달하면 5.34는 5에 더 가깝기 때문에 Math.round()는 5를 반환합니다. 반면 5.5 이상의 값이라면 6이 됩니다.
console.log(Math.round(5.34)); // 5 console.log(Math.round(5.5)); // 6 → .5 이상은 올림 console.log(Math.round(5.8)); // 6
출력 결과
5 6 6
두 메서드 한눈에 비교하기
| 입력값 | Math.ceil() | Math.round() |
|---|---|---|
| 5.34 | 6 | 5 |
| 5.5 | 6 | 6 |
| -5.34 | -5 | -5 |
| -5.5 | -5 | -5 |
참고로 항상 작은 값 방향으로 내림하고 싶다면 Math.floor() 메서드를 사용하면 됩니다. 세 메서드의 동작 차이를 정확히 이해해 두면 금액 계산, 페이지네이션, 좌표 처리 등 실무 개발에서 큰 도움이 됩니다.