[JAVASCRIPT LEVEL1] 5. 숫자

유지원·2021년 5월 18일
1

JAVASCRIPT LEVEL1

목록 보기
5/19

이 포스팅은 '러닝 자바스크립트'를 보며 공부한 내용입니다.

숫자

  • 컴퓨터가 정확히 나타낼 수 있는 숫자 (3이나 5.5, 1, 1,000,000).
  • 근사치로만 표현할 수 있는 숫자.
    • π : 원주율을 구성하는 숫자는 무한하고 반복되지도 않기 때문.
    • 10/3 : 나타낼 수는 있긴 하지만, 소수점 아래 자리가 무한히 반복(3.3333···)되므로 일반적으로 근사치로만 나타냄.

더블 : 자바스크립트도 다른 프로그래밍 언어와 마찬가지로 실제 숫자의 근사치를 저장할 때 IEEE-764배 정도double-precision 부동소수점 숫자 형식을 사용.

더블 형식의 근사치 결과는 종종 당황스럽게 함.

  • 0.1 + 0.2 ➜ 0.3000000000000004 반환.
    • 무한한 값을 유한한 메모리 안에서 가능한 한 정확히 짐작하려다가 생긴 결과일 뿐.

자바스크립트에는 숫자형 데이터 타입이 하나밖에 없다?

대부분의 프로그래밍 언어는 여러 가지 정수 타입을 사용하며 부동소수점 숫자 타입도 두 가지 이상 사용합니다.

자바스크립트
✔️ 숫자형 데이터를 하나만 갖기로 선택.

  • 초보자에게 부담 없는 언어로 만들었다는 장점.
  • 고성능 정수 연산이나 정밀한 소수점 연산이 필요한 애플리케이션에서 쓸 수 없습니다.

✔️ 10진수, 2진수, 8진수, 16진수의 네 가지 숫자형 리터럴을 인식.

  • 10진수 리터럴에는 소수점 없는 정수, 소수점 있는 10진수(12.34등), 지수 표기법 사용.

✔️ 그 외에도 무한대, 음의 무한대, '숫자가 아님'을 나타내는 특별한 값들.

  • 엄밀히 말해 숫자형 리터럴은 아니지만 숫자형 값이므로 여기에 포함.
  • 무한대, NaN : 숫자는 아님. 계산에 사용하는 숫자라기보다는 일종의 플레이스 홀더.

✔️ 10진수, 16진수, 지수 등 어떤 리터럴 형식을 사용하더라도 결국 숫자는 더블 형식으로 저장됨.

  • 다양한 리터럴 형식은 숫자를 간편한 형식으로 표현할 수 있도록 제공된 것 뿐.
  • 자바스크립트가 표시할 수 있는 숫자 형식에는 제한이 있습니다.

세분화된 정수 타입은 필요한 기능이니 나중에 바뀔 수도 있습니다.


Number 객체에 있는 프로퍼티

숫자에 대응하는 Number 객체에는 중요한 숫자형 값에 해당하는 유용한 프로퍼티가 있습니다.

const small = Number.EPSILON;            // 1에 더했을 때 1과 구분되는 결과를 만들 수 있는
                                         // 가장 작은 값. 근사치는 2.2e-16.
const bigInt = Number.MAX_SAFE_INTEGER;  // 표현할 수 있는 가장 큰 정수
const max = NUmber.MAX_VALUE;            // 표현할 수 있는 가장 큰 숫자
const minInt = Number.MIN_SAFE_INTEGER;  // 표현할 수 있는 가장 작은 정수
const min = Number.MIN_VALUE;            // 표현할 수 있는 가장 작은 숫자
const nInf = Number.NEGATIVE_INFINITY;   // -Infinity
const nan = Number.NaN;                  // NaN
const inf = Number.POSITIVE_INFINITY;    // Infinity
profile
👋 https://github.com/ujw0712

0개의 댓글