NaN은 무엇과도 같지 않음
NaN값은 그 자신을 포함하여 무엇과도 같지 않다.
|
|
그럼 어떻게 숫자가 NaN인지 알아보느냐!inNaN(x)
함수를 사용하면 된다. isNaN 함수는 x가 NaN일때 true를 반환한다.
|
|
소수 비교하기
자바스크립트의 숫자는 모두 더블형식
더블형식은 실수를 말하는데 실수는 0.3000000000000000000000004처럼 작은 값을 포함하기도 한다. 그렇기 때문에 실수를 비교할 때에는 Number.EPSILON의 숫자형 상수를 이용하여 비교한다고 한다.
MDN에서는
Number.EPSILON 속성(property)은 Number 형으로 표현될 수 있는 1과 1보다 큰 값 중에서 가장 작은 값의, 차입니다.
라고 설명하고 있다. 두개의 더블(실수)형식이 같다고 할 수 있을 만큼 가까운 숫자인지 판단할때 일반적으로 사용하는 방법이라고 하니 걍 익혀두는게 좋을 듯
아래 예시로 좀 더 자시헤 보도록 할까…123456let n = 0;while(true){ n += 0.1; if(n === 0.3) break;}console.log(`Stopped at ${n}`);
이렇게 하면 0.3에 멈출거라고 생각하지만 컴퓨터는 값을 내놓지 못하고 끝없이 돌아갔다. 창 멈춤…ㄷㄷㄷ
그래서 Number.EPSILON과 관계연산식을 써서 느슨하게
비교해야함.
|
|