늘 겸손하게

JavaScript - 숫자 타입 본문

Programming/JavaScript

JavaScript - 숫자 타입

besforyou999 2023. 8. 6. 23:25

 

JavaScript 숫자 타입

 

C, 자바는 소수가 없는 정수, 소수가 있는 실수를 따로 구분합니다.

 

정수는 int, long, 실수는 float, double 타입을 제공하나 자바스크립트는 실수 하나만 지원합니다.

 

ECMAScript 사양 자바스크립트 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식을 따릅니다. 즉, 모든 수를 실수로 처리합니다.

 

따라서 정수로 표시되어도 사실은 실수입니다.

 

// 숫자 타입은 모두 실수로 처리된다.
console.log(1 === 1.0); // true

 

숫자 타입은 추가적으로 세 가지 특별한 값도 지원합니다.

 

  • Infinity : 양의 무한대
  • -Infinity : 음의 무한대
  • NaN : Not a Number (산술 연산이 불가능)

 

Infinity & -Infinity 

 

각각 양의 무한대, 음의 무한대를 표현합니다.

 

console.log(10 / 0); // Infinity
console.log(10 / -0); // -Infinity

 

 

NaN : Not a Number

 

주어진 연산의 계산이 불가능할 경우 반환됩니다.

 

console.log(1 * "Hello world");     // NaN
console.log(100 / "Water");         // NaN
console.log("Hello " * "World");    // NaN

 

주의할 점은 NAN, nan, Nan이 아닌 NaN이라는 점입니다. 자바스크립트는 대소문자를 구분하므로 자바스크립트 엔진은 NAN, nan, Nan을 식별자로 인식합니다.

 

 

숫자 표현 범위

 

자바스크립트 표준 빌트인 객체인 Number가 지원하는 MAX_VALUE, MIN_VALUE를 통해 확인할 수 있다.

 

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

 

대략 2^-1022 ~ 2^1023 범위 내 표현이 가능하다.