본문 바로가기
dev/javascript

[javascript] 자바스크립트 Number 타입 사용 방법

by 최연탄 2022. 5. 27.
728x90
반응형

참고: https://www.javascripttutorial.net/javascript-number/

이 튜토리얼에서는 javascript 숫자 유형과 이를 효과적으로 사용하는 방법에 대해 알아보겠습니다.

Javascript의 Number 소개

javascript는 number 유형을 사용하여 정수와 부동소수점 값을 모두 나타냅니다. 기술적으로 javascript number 유형은 IEEE-754 형식을 사용합니다. ES2020에서는 2^53 - 1 보다 큰 수를 표현하기 위해 새로운 타입인 bigint를 기본 유형으로 도입했습니다. 다양한 유형의 숫자를 지원하기 위해 javascript는 다양한 숫자 리터럴 형식을 사용합니다.

Integer Numbers

다음은 10진수 정수를 가지는 변수를 선언하는 방법을 보여줍니다.

let counter = 100;

정수는 8진수와 16진수 형식으로도 나타낼 수 있습니다. 산술 연산에서 8진수와 16진수를 사용하면 javascript는 이를 10진수로 취급합니다.

Octal Numbers

8진수 리터럴 숫자는 숫자 0으로 시작하고 그 뒤에 8진수 시퀀스(0에서 7까지의 숫자)가 옵니다. 예를 들어:

let num = 071;
console.log(num);

결과:

57

또 8진수를 표현할 때 0에서 7사이의 범위에 포함되는 숫자가 아닌 숫자가 포함된 경우 javascript 엔진은 0을 무시하고 숫자를 10진수로 처리합니다. 예를 들어:

let num = 080;
console.log(num);

결과:

80

이 암묵적인 동작으로 인해 문제가 발생할 수 있습니다. 따라서 ES6는 8진수 시퀀스(0에서 7까지의 숫자)로 시작하는 새로운 8진수 리터럴 0o을 도입했습니다. 예를 들어:

let num = 0o71;
console.log(num);

결과:

57

0o으로 8진수를 표시했는데 뒤에 잘못된 숫자가 있으면 javascript는 구문 오류를 발생시킵니다.

let num = 0o80;
console.log(num);

결과:

let num = 0o80;
          ^^
SyntaxError: Invalid or unexpected token

Hexadecimal Numbers

16진수는 0x 또는 0X로 시작하고 그 뒤에 16진수 숫자(0~9, a~f)가 옵니다. 예를 들어:

let num = 0x1a;
console.log(num);

결과:

26

Floating-point Numbers

부동 소수점 리터럴 숫자를 정의하려면 소수점과 그 뒤에 하나 이상의 숫자를 포함합니다. 예를 들어:

let price = 9.99;
let tax = 0.08;
let discount = .05; // valid but not recommeded

일반적은 부동 소수점 숫자가 아닌 매우 큰 숫자가 있는 경우  e 표기법을 사용할 수 있습니다. e 표기법은 숫자에 주어진 거듭제곱으로 10을 곱해야 함을 나타냅니다. 예를 들어:

let amount = 3.14e7;
console.log(amount);

결과:

31400000

위의 표기법 3.14e7의 의미는 3.14에 10의 7승을 곱한 것 입니다. 마찬가지로 e- 표기법을 사용하여 아주 작은 수를 나타낼 수 있습니다. 예를 들어:

let amount = 5e-7; 
console.log(amount);

결과:

0.0000005

위의 표기법 5e-7은 5를 10,000,000으로 나누는 것을 의미합니다. 또한 javascript는 소수점 뒤에 최소 6개의 0이 있는 부동 소수점 숫자를 e 표기법으로 자동 변환합니다. 예를 들어:

let amount = 0.0000005;
console.log(amount);

결과:

5e-7

부동 소수점 숫자는 소수점 이하 17자리까지만 정확합니다. 부동 소수점 숫자에 대해 산술 연산을 수행할 때에는 대략적인 결과를 얻는 경우가 많습니다. 예를 들어:

let amount = 0.2 + 0.1;
console.log(amount);

결과:

0.30000000000000004

Big Integers

javascript는 ES2022 부터 bigint 유형을 도입했습니다. 이 bigint 유형은 값이 2^53 - 1 보다 큰 정수를 저장합니다. 이러한 큰 정수 리터럴을 표시하려면 n을 정수 리터럴 끝에 추가해주면 됩니다.

let pageView = 9007199254740991n;

요약

javascript 숫자 타입은 정수와 부동 소수점 모두를 표현할 수 있습니다.

관련 글

자바스크립트 BigInt 사용 방법

반응형

댓글