반응형
JavaScript에서 Number
타입은 숫자를 나타내기 위한 기본 데이터 타입입니다. 이 타입은 정수와 부동 소수점 숫자를 모두 포함하며, 64비트 부동 소수점 형식을 따릅니다. JavaScript의 숫자 타입은 매우 유연하고 다양한 상황에서 사용될 수 있지만, 특정한 특성과 제한 사항도 있습니다.
JavaScript의 숫자 타입 (Number
)
JavaScript의 Number
타입은 IEEE 754 표준의 64비트 부동 소수점 형식을 사용하여 숫자를 저장합니다. 이는 다음과 같은 다양한 숫자 표현을 포함합니다:
- 정수:
- 0, 양의 정수, 음의 정수를 포함합니다.
let positiveInteger = 42; let negativeInteger = -42; let zero = 0;
- 부동 소수점:
- 소수점이 포함된 실수를 나타냅니다.
let decimal = 3.14; let negativeDecimal = -2.718;
- 소수점이 포함된 실수를 나타냅니다.
- 지수 표기법:
- 매우 크거나 작은 숫자를 지수 표기법으로 표현할 수 있습니다.
let largeNumber = 1.23e5; // 1.23 x 10^5 = 123000 let smallNumber = 1.23e-5; // 1.23 x 10^-5 = 0.0000123
- 매우 크거나 작은 숫자를 지수 표기법으로 표현할 수 있습니다.
- 특수 숫자 값:
Infinity
,-Infinity
,NaN
(Not-a-Number)와 같은 특별한 값도 포함합니다.let infinite = Infinity; let negativeInfinite = -Infinity; let notANumber = NaN;
숫자 타입의 특성
- 정밀도:
- JavaScript의 숫자는 64비트 부동 소수점 형식을 사용하므로 정밀도에 제한이 있습니다. 이는 특히 큰 정수나 매우 작은 소수점 숫자를 다룰 때 중요합니다.
- 부동 소수점 연산의 한계로 인해, 작은 숫자 연산에서 부정확성이 발생할 수 있습니다.
console.log(0.1 + 0.2); // 출력: 0.30000000000000004
- 정확한 정수 표현:
- JavaScript는 정수를 정확하게 표현할 수 있는 최대 한계를 가지고 있습니다. 안전한 정수 범위는 -2^53 ~ 2^53 - 1 입니다.
console.log(Number.MAX_SAFE_INTEGER); // 출력: 9007199254740991 console.log(Number.MIN_SAFE_INTEGER); // 출력: -9007199254740991
- JavaScript는 정수를 정확하게 표현할 수 있는 최대 한계를 가지고 있습니다. 안전한 정수 범위는 -2^53 ~ 2^53 - 1 입니다.
Infinity
와NaN
:Infinity
는 너무 큰 숫자 연산 결과를 나타내고,NaN
은 숫자가 아닌 값을 나타냅니다.console.log(1 / 0); // 출력: Infinity console.log(0 / 0); // 출력: NaN console.log('a' * 2); // 출력: NaN
- 정확한 큰 정수 표현:
- 숫자에 n을 붙여 표현합니다.
- 큰 정수를 정확하게 표현하기 위해 JavaScript는
BigInt
타입을 제공합니다.Number
타입과는 달리BigInt
는 정밀도의 손실 없이 매우 큰 정수를 처리할 수 있습니다.let bigInt = 1234567890123456789012345678901234567890n; console.log(bigInt); // 출력: 1234567890123456789012345678901234567890n
숫자와 관련된 내장 함수와 객체
JavaScript는 숫자를 다루기 위한 다양한 내장 함수와 객체를 제공합니다.
Math
객체:Math
객체는 수학 연산을 위한 다양한 메서드를 제공합니다.console.log(Math.PI); // 출력: 3.141592653589793 console.log(Math.sqrt(16)); // 출력: 4 console.log(Math.random()); // 출력: 0과 1 사이의 난수 console.log(Math.floor(4.7)); // 출력: 4 console.log(Math.ceil(4.2)); // 출력: 5
Number
객체:Number
객체는 숫자에 대한 유용한 상수와 메서드를 제공합니다.console.log(Number.MAX_VALUE); // 출력: 1.7976931348623157e+308 console.log(Number.MIN_VALUE); // 출력: 5e-324 console.log(Number.isFinite(100)); // 출력: true console.log(Number.isNaN(NaN)); // 출력: true
parseInt
와parseFloat
함수:parseInt
와parseFloat
는 문자열을 숫자로 변환하는 함수입니다.console.log(parseInt('123')); // 출력: 123 console.log(parseFloat('123.45')); // 출력: 123.45
toFixed
와toPrecision
메서드:- 숫자를 특정 자릿수까지 포맷팅할 수 있는 메서드입니다.
let num = 123.456; console.log(num.toFixed(2)); // 출력: 123.46 console.log(num.toPrecision(4)); // 출력: 123.5
- 숫자를 특정 자릿수까지 포맷팅할 수 있는 메서드입니다.
숫자 연산
JavaScript는 다양한 산술 연산을 지원합니다.
- 기본 산술 연산:
- 덧셈(
+
), 뺄셈(-
), 곱셈(*
), 나눗셈(/
), 나머지(%
), 지수(**
) 연산이 가능합니다.let a = 10; let b = 3; console.log(a + b); // 출력: 13 console.log(a - b); // 출력: 7 console.log(a * b); // 출력: 30 console.log(a / b); // 출력: 3.3333333333333335 console.log(a % b); // 출력: 1 console.log(a ** b); // 출력: 1000
- 덧셈(
- 증가(
++
) 및 감소(--
) 연산자:- 변수의 값을 1씩 증가 또는 감소시킵니다.
let x = 5; x++; console.log(x); // 출력: 6 x--; console.log(x); // 출력: 5
- 변수의 값을 1씩 증가 또는 감소시킵니다.
- 복합 할당 연산자:
+=
,-=
,*=
,/=
,%=
,**=
연산자가 지원됩니다.let y = 10; y += 5; // y = y + 5 console.log(y); // 출력: 15 y *= 2; // y = y * 2 console.log(y); // 출력: 30
숫자 비교
JavaScript는 숫자의 비교를 위해 다양한 비교 연산자를 제공합니다.
==
(동등 연산자):- 값만 비교합니다.
console.log(5 == '5'); // 출력: true
- 값만 비교합니다.
===
(엄격 동등 연산자):- 값과 타입을 모두 비교합니다.
console.log(5 === '5'); // 출력: false
- 값과 타입을 모두 비교합니다.
!=
(부등 연산자):- 값만 비교하여 다르면
true
를 반환합니다.console.log(5 != '5'); // 출력: false
- 값만 비교하여 다르면
!==
(엄격 부등 연산자):- 값과 타입을 모두 비교하여 다르면
true
를 반환합니다.console.log(5 !== '5'); // 출력: true
- 값과 타입을 모두 비교하여 다르면
- 크기 비교 연산자:
>
,<
,>=
,<=
연산자를 사용하여 크기를 비교합니다.console.log(10 > 5); // 출력: true console.log(10 < 5); // 출력: false console.log(10 >= 10); // 출력: true console.log(10 <= 10); // 출력: true
숫자 타입 변환
JavaScript에서는 숫자를 다른 타입으로 변환하거나, 다른 타입을 숫자로 변환할 수 있는 다양한 방법이 있습니다.
- 문자열을 숫자로 변환:
Number()
,parseInt()
,parseFloat()
를 사용하여 문자열을 숫자로 변환할 수 있습니다.let str = "123.45"; console.log(Number(str)); // 출력: 123.45 console.log(parseInt(str)); // 출력: 123 console.log(parseFloat(str)); // 출력: 123.45
- 숫자를 문자열로 변환:
- `String()`, `toString()`을 사용하여 숫자를 문자열로 변환할 수 있습니다
let str = "123.45"; console.log(Number(str)); // 출력: 123.45 console.log(parseInt(str)); // 출력: 123 console.log(parseFloat(str)); // 출력: 123.45
- `String()`, `toString()`을 사용하여 숫자를 문자열로 변환할 수 있습니다
결론
JavaScript의 Number
타입은 매우 유연하고 강력한 기능을 제공하며, 다양한 숫자 연산과 표현을 지원합니다. 하지만 부동 소수점 연산의 특성과 정밀도 제한을 이해하고 이를 염두에 두고 사용하는 것이 중요합니다. JavaScript에서 제공하는 다양한 내장 함수와 메서드를 활용하면 숫자 데이터를 효과적으로 다룰 수 있습니다.
반응형
'언어 > Javascript' 카테고리의 다른 글
[ JavaScript ] Number.isFinite() 사용하기 (0) | 2024.06.09 |
---|---|
[ JavaScript ] 'BigInt' 사용하기 (0) | 2024.06.09 |
[ JavaScript ] 데이터 타입 알아보기 (0) | 2024.06.09 |
[ JavaScript ] 시작하기 (0) | 2024.06.09 |
[ JavaScript ] 자바스크립트의 특징 (0) | 2024.06.08 |