자바스크립트에서 모든 숫자는 IEEE754 표준을 따르는 64비트 부동 소수점 형식으로 저장
일부 소수점 연산에서 정확한 값을 저장하지 못하는 한계를 가지고 있음
⇒ 부동 소수점 형식의 한계
0.1과 0.2를 이진수로 변환하면 무한 반복되는 소수로 표현되어 컴퓨터는 근사값으로 저장하게 된다.
따라서 0.1 + 0.2 는 0.3과 일치할 수 없기에 false가 반환된다.
특정 자릿수까지 반올림하기
toFixed()
toPrecision()
문제 : 숫자가 문자열로 변환되는 문제 발생
Number.EPSILON
을 활용하여 비교
Number.EPSILON
은 자바스크립트에서 표현할 수 있는 가장 작은 수
모든 숫자를 정밀하게 계산하는 것보다 적당한 오차를 감수하고 범용적으로 빠르게 처리하는게 더 실용적이기 때문!