JS 에서 소수점 반올림 처리하기

2023. 11. 20. 06:51Javascript

SQL 에서는 ROUND(소수값, 유지할 자릿수) 만으로 소숫점 몇 째자리까지 유지할 수 있다.

[ SQLITE 기준 ]

SELECT ROUND(12345.67890) AS ROUNDING;
-> 12345

SELECT ROUND(12345.67890, 2) AS SOSU;
-> 12345.68

 

하지만 자바스크립트에서는 ROUND 함수로 소수점 자리유지를 할 수 없다. 항상 반올림된 정수로 된 결과로 나온다.

Math.round(12345.67890)
-> 12346

Math.round(12345.67890, 2)
-> 12346

 

소수점 자리를 유지하려면 Math.round(소수값 * 10^N) / 10^N 으로 처리하면 된다.

소수점 둘째 자리이면 10의 제곱인 100 을 쓰면 된다.

Math.round(12345.67890 * 100) / 100
-> 12345.68

이렇게 쓰기도 한다.

(12345.67890 * (1 + Number.EPSILON)).toFixed(2);
-> 12345.68