프로그래밍/웹 관련

[javaScript] "round()"를 이용하여 소수점 3자리에서 반올림해 2자리까지 표현하는 방법

채윤아빠 2025. 11. 27. 10:19

자바스크립트에서 제공하는 "Math.round()" 함수는 정수 단위의 반올림만 지원 합니다.
따라서 소수점 특정 자리에서 반올림하려면, 소수점을 이동시킨 후 반올림하고 다시 원래 위치로 되돌리는 방식으로 처리해야 합니다.


기본적인 반올림 방법

소수점 셋째 자리에서 반올림하여 둘째자리까지 표현하려면 다음과 같이 할 수 있습니다.

const value = 1.23567;
const rounded = Math.round(value * 100) / 100;

console.log(rounded); // 1.24
  • "value * 100" : 소수점 세 번째 자리를 정수 반올림 기준 위치로 이동
  • "Math.round()" : 반올림 수행
  • "/ 100" : 원래 소수점 위치로 복원

부동소수점 오차를 고려한 안전한 방법

자바스크립트는 부동소수점 연산 특성상 미세한 오차가 발생할 수 있습니다. 그래서 가끔 실수가 소수점 뒤로 엄청 많은 숫자가 표시되는 경우가 발생합니다. 이를 방지하기 위해서 반올림을 이용하긴 합니다.
예를 들어 "1.005"와 같은 값은 기대한 결과와 다르게 처리될 수 있습니다. (예: 1.0050000000000001)

이를 방지하기 위해 "Number.EPSILON"을 활용하는 방법을 권장합니다.

const value = 1.005;
const rounded = Math.round((value + Number.EPSILON) * 100) / 100;

console.log(rounded); // 1.01

이 방식은 실무 환경에서 보다 안정적인 반올림 결과를 제공합니다.


항상 소수점 두 자리까지 표시해야 하는 경우

계산 결과를 화면에 출력할 때 소수점 두 자리를 고정 해야 한다면 "toFixed()"를 사용하는 것이 보다 좋은 결과를 얻을 수 있습니다.

const value = 1.2;
const formatted = (Math.round(value * 100) / 100).toFixed(2);

console.log(formatted); // "1.20"
  • "toFixed(2)"는 문자열을 반환
  • UI 출력이나 보고서용 데이터 표현에 적합

맺는말

정리해 보면 다음과 같습니다.

  • 계산용으로 소수점 셋째자리에서 반올림 처리 → "Math.round(value * 100) / 100"
  • 부동소수점 오차 보정 → "Number.EPSILON" 활용
  • 보고서 표시 등 소수점 2자리 고정 → ".toFixed(2)"

이와 같은 방식으로 자바스크립트에서 소수점 반올림을 처리하시면 보다 정확하고 안정적인 결과를 얻으실 수 있습니다.
상황에 맞게 계산용과 표시용 방식을 구분하여 사용하시면 되겠습니다.




728x90
반응형