Number의 정수·소수·NaN·Infinity 특성을 이해합니다.
일반 숫자는 IEEE 754 배정밀도 형식이라 매우 큰 정수와 일부 소수 계산에 오차가 있습니다. Number.isNaN과 Number.isFinite로 특수값을 검사할 수 있습니다.
0.1과 0.2는 이진수로 정확히 표현되지 않는 값이라 둘을 더하면 0.3이 아니라 0.30000000000000004가 출력됩니다. Number에 hello 같은 문자열을 넘기면 숫자로 해석할 수 없어 NaN이 되므로 Number.isNaN이 true를 돌려주고, 10 / 0은 오류 대신 Infinity를 만들기 때문에 Number.isFinite가 false를 냅니다.
정수도 Number.MAX_SAFE_INTEGER인 9007199254740991까지만 정확합니다. 그보다 큰 정수는 9007199254740992 + 1이 9007199254740992로 계산되는 것처럼 1 차이를 구분하지 못하므로, 큰 정수 ID는 BigInt로 다루고 Number.isSafeInteger로 범위를 확인합니다.
NaN은 자기 자신과도 같지 않으므로 value === NaN으로 검사할 수 없습니다.
직접 바꿔보세요소수 금액을 정수 원 단위로 계산하는 예제를 만드세요.