버리기
[JS] 소수점 계산 오차 해결
원인 컴퓨터에서 계산을 할 때는 10진수 대신에 0과 1만을 사용하는 2진수로 계산합니다. 0과 1만을 사용하여 계산하기에 10 진수를 2진수로 바꾸는 변환과정이 필요합니다. 이때 컴퓨터 메모리에 존재하는 한계로 인해서 연산 중 발생한 무한소수의 중간을 잘라서 유한 소수로 저장해 버립니다. 이 과정에서 미세한 오차가 발생하는 것입니다. 첫 번째 방법 Number((0.2 + 0.4).toFixed(1)) // 0.6 Math.round((0.2 + 0.4) * 10) / 10; // 0.6 Number.toFixed(n) → 소수점 n자리까지 반올림 Math.round((a + b) * 10) / 10 → 소수점 첫째 자리까지 반올림 toFixed() 메서드는 문자열로 반환되기에 Number로 감싸서 숫..