대부분의 프로그래밍 언어가 그러하듯이 JavaScript 또한 표현할 수 있는 숫자(Number)의 범위가 정해져있다.

JavaScript에서 표현할 수 있는 수의 범위를 직접 계산해보기 위해서 공부를 시작했지만, 이때 이 도전을 멈췄어야 했다.

STAY..

※ 참고로 팔만코딩경에는 이미 부동소수점에 대해서 잘 정리된 글들이 많기 때문에

이 글은 부동소수점에 대해 알고 있다는 전제하에 작성되었습니다.

JavaScript에서 표현할 수 있는 수의 범위를 부동 소수점 표현 방식을 통해 계산해보는게 이 글의 목표입니다.

문제의 시작


JavaScript가 최대 혹은 최소로 표현할 수 있는 수의 범위는 아래와 같다.

console.log(Number.MAX_VALUE); //1.7976931348623157e+308 (최댓값)
console.log(Number.MIN_VALUE); //5e-324 (최솟값)

이 값을 넘어가면 Infinity로 인식하거나 값이 파괴되어 정확한 값이 나오지 않는다.

궁금했던 것은 “표현할 수 있는 수의 범위가 어떻게 정해졌는가”였다.

$1.7976931348623157e+308$ 과 $5e-324$가 어떻게 나온 숫자인지 꼭 계산해보고 싶었다.

결론