Javascript - Number의 정의와 유효 값의 범위

자바스크립트에서 숫자 값은 Number 타입으로 정의해서 사용 할 수 있습니다. 다르게는 자바스크립트에서 숫자는 Number로 취급된다고 이야기 할 수 있죠. 그런데 자바스크립트에서 취급하는 숫자(Number)가 어떻게 정의되는지 코드로 사용되는 유효 값의 범위가 얼마인지 알고 계신가요? 얼마 전 숫자를 다루는 기능을 만들다보니 Number에 대해 추상적으로만 생각하고 사용했구나 라는 생각이 문득 들었습니다. 오늘은 자바스크립트의 숫자 정의와 유효 범위에 대해 이야기해볼까 합니다.

Number의 정의

Javascript는 숫자 값을 다루기 위한 타입으로 Number를 제공합니다. Number는 정수, 실수, 양수, 음수, 지수 등 모든 숫자 값을 나타낼 수 있습니다. Number 타입은 64비트 형식의 IEEE-754 표준을 따르며, 이는 컴퓨터에서 숫자를 저장하고 처리하는 방식을 정의합니다.

let num1 = 10; //정수
let num2 = 3.14; //실수
let num3 = 1.2e-4; //지수

Javascript에서는 Number 타입을 사용하여 수학적 계산을 수행하거나 변수에 값을 할당하는 등 다양한 용도로 사용됩니다. 또한, 문자열을 parseInt()나 parseFloat() 함수를 사용해 숫자로 변환해서 사용 할 수 있습니다.

let strNum = "10";

let num = parseInt(strNum);
console.log(num); // 10

Number는 다양한 수학 함수와 연산자를 사용하여 계산할 수 있습니다. 예를 들어, 다음과 같이 덧셈, 뺄셈, 곱셈, 나눗셈 등의 연산이 가능합니다.

let num1 = 10;
let num2 = 5;

console.log(num1 + num2); // 15
console.log(num1 - num2); // 5
console.log(num1 * num2); // 50
console.log(num1 / num2); // 2

또한, Number 타입은 특별한 값인 Infinity, -Infinity, NaN 등을 가질 수 있습니다. Infinity는 양의 무한대를, -Infinity는 음의 무한대를 나타내며, NaN은 숫자가 아님을 나타냅니다.

let num1 = 10;
let num2 = 0;

console.log(num1 / num2); // Infinity
console.log(-num1 / num2); // -Infinity

console.log("hello" * 2); // NaN

Number 유효 범위

Number 타입은 정수, 실수, 양수, 음수, 지수 등 모든 숫자 값을 나타낼 수 있고, 64비트 형식의 IEEE-754 표준을 따르기 때문에 유효 범위는 일반적으로 -9007199254740991부터 9007199254740991까지입니다. 이 범위를 벗어나면 정확도 문제가 발생할 수 있습니다.

 

이러한 문제를 해결하기 위해 BigInt 타입이 추가되었으며, BigInt 타입은 Number 타입과과 유사하지만, 더 큰 정수 값을 처리할 수 있습니다. BigInt 데이터 유형은 ES2020부터 지원되며, 다음과 같은 방법으로 생성할 수 있습니다.

let bigNum = 9007199254740992n;

 

 

반응형

댓글

Designed by JB FACTORY