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

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); // 123decimals가 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()도 참고.
반응형
'Mechanic: IT 인터넷 > Mechanic, M-Tech' 카테고리의 다른 글
| Eclipse에서 jQuery 오류 표시 제거하기 - JavaScript Include Path 설정 (0) | 2014.02.15 |
|---|---|
| JavaScript 숫자에 콤마(쉼표) 추가하기 - 천 단위 구분 (0) | 2014.02.14 |
| JavaScript 날짜 포멧 지정과 날짜 계산 - Date 객체 활용 (0) | 2014.02.13 |
| Eclipse 설치와 Workspace 설정 - Encoding, JDK, Tomcat까지 (0) | 2014.01.17 |
| Maven 설치 가이드 - Windows 환경변수 설정까지 (0) | 2014.01.17 |