본문 바로가기
Mechanic: IT 인터넷/Mechanic, M-Tech

JavaScript 반올림, 올림, 내림 - Math.round, ceil, floor 자리수 지정

by M-LOG : 엠로그 2014. 2. 13.
반응형

원본 작성일: 2014년경
보완 작성일: 2026.02.14

JavaScript 반올림 올림 내림 Math 함수

JavaScript의 Math.round, Math.ceil, Math.floor는 정수 단위로만 동작한다. 소수점 특정 자리에서 반올림/올림/내림하려면 10의 거듭제곱을 곱하고 나누는 트릭이 필요하다.

기본 동작

Math.round(3.6);   // 4   (반올림)
Math.ceil(3.2);    // 4   (올림)
Math.floor(3.9);   // 3   (내림, 버림)

세 함수 모두 정수를 반환한다. 소수점 둘째 자리에서 반올림하고 싶으면?

소수점 자리수 지정 방법

원리: 자리수만큼 10의 거듭제곱을 곱해서 정수로 만들고 → 반올림 → 다시 나누기

// 소수점 둘째 자리에서 반올림
Math.round(3.456 * 100) / 100;   // 3.46

// 소수점 첫째 자리에서 올림
Math.ceil(3.412 * 10) / 10;      // 3.5

// 소수점 셋째 자리에서 내림
Math.floor(3.4567 * 1000) / 1000;  // 3.456

유틸 함수

자리수를 매번 계산하기 번거로우니 함수로 만들어두면 편하다.

const math = {
    // 반올림
    round(num, decimals) {
        const factor = Math.pow(10, decimals);
        return Math.round(num * factor) / factor;
    },
    // 올림
    ceil(num, decimals) {
        const factor = Math.pow(10, decimals);
        return Math.ceil(num * factor) / factor;
    },
    // 내림
    floor(num, decimals) {
        const factor = Math.pow(10, decimals);
        return Math.floor(num * factor) / factor;
    }
};

math.round(123.456, 2);   // 123.46
math.ceil(123.412, 1);    // 123.5
math.floor(123.999, 0);   // 123

decimals가 0이면 정수 단위, 1이면 소수점 첫째 자리, 2이면 둘째 자리까지.

toFixed()와의 차이

math.round(3.456, 2);      // 3.46 (숫자 반환)
(3.456).toFixed(2);         // "3.46" (문자열 반환)
항목 Math.round 방식 toFixed()
반환 타입 숫자 문자열
후속 연산 바로 가능 Number() 변환 필요
용도 계산 표시

계산에는 Math 방식, 화면 표시에는 toFixed()를 쓰면 된다. JavaScript 소수점 자리수 고정 - toFixed()도 참고.

반응형