front end/javascript

javascript에서 소숫점 반올림하는 방법

노루아부지 2022. 3. 9. 21:08

프로그래밍을 처음 배우면 꼭 나오는 소수점 반올림을 javascript에서는 보통 이렇게 합니다.

Math.round(123.4567 * 100) / 100

위 코드는 다음과 같은 원리로 동작합니다.

  1. 나타낼 소수점 아래자리 개수만큼의 10의 자승을 곱한다.(소수점 2번째 자리까지 표시한다면 10의 제곱인 100을 곱하고, 소수점 3번째 자리까지 표시한다면 10의 세제곱인 1000을 곱함)
  2. 입력값을 반올림한 수와 가장 가까운 정수 값을 반환하는 Math.round() 함수를 사용하여 정수로 변환한다.
  3. 곱했던 수 만큼 다시 나누기한다.

 

이렇게 하면 123.46이라는 숫자가 반환됩니다.

 

위의 방법보다 더 간단히 반올림할 수 있는 방법은 .toFixed()라는 메서드를 사용하는 방법입니다. 이 방법은 무려 Internet Explorer 5.5부터 사용 가능했던 함수입니다. 이 함수를 사용하는 방법은 다음과 같습니다.

123.4567.toFixed(2);

 

위 코드의 결과는 "123.46"이라는 숫자가 아닌 문자열입니다. 자료형의 확인은 다음과 같이 할 수 있습니다.

console.log(typeof 123.4567.toFixed(2));

 

따라서 ===나 !== 등으로 비교를 한다면 주의를 해야 합니다.

 

728x90
loading