예를 들어 x 변수의 값이 NaN인지 알아보기 위해 x === NaN
과 같은 표현식을 쓸 수 없다. x != x
나 Number.isNaN(x)
와 같이 사용해야 한다.
자바스크립트로 실수를 다룰 때 실제 숫자의 근삿값으로 표현될 때가 자주 있다. 자바스크립트를 비롯해 최신 프로그래밍 언어에서 사용하는 IEEE 754 부동 소수점 표현은 이진 표현이며 1/2, 1/8, 1/1024 같은 분수는 정확하게 표현할 수 있다. 하지만 이진 부동 소수점 표현은 0.1 같은 단순한 숫자를 정확히 표현하지 못한다.
반올림 오류 때문에 0.3과 0.2의 차이의 근삿값은 0.2와 0.1의 차이의 근삿값과 같지 않다. 이 문제가 자바스크립트만의 문제는 아님을 이해하는 것이 중요. 이 문제는 이진 부동 소수점 숫자를 사용하는 프로그래밍 언어에서 모두 발생함.
이 문제 때문에 문제가 생긴다면 정수로 변환하여 프로그래밍 하는 것을 고려해보는것이 좋다.
예로 0.1달러 대신 10센트로.