JavaScript의 number 타입, 기본부터 고급까지
JavaScript에서 숫자는 프로그래밍의 핵심 데이터 타입 중 하나로, 다양한 연산과 데이터 처리에 사용됩니다. 이 글에서는 number 타입의 정의, 주요 특징, 실무 활용법, 그리고 숫자 연산에서 발생할 수 있는 문제를 해결하는 방법까지 단계별로 살펴봅니다. JavaScript의 number 타입을 완벽히 이해하여 더 견고하고 효율적인 코드를 작성해 보세요.
목차
- number 타입이란 무엇인가?
- 기본 숫자 연산
- NaN과 Infinity
- 숫자 정밀도와 안전한 연산
- Math 객체를 활용한 고급 연산
- 숫자 타입 변환과 암묵적 변환
- 실무에서의 활용 예제
1. number 타입이란 무엇인가?
JavaScript에서 number
타입은 숫자를 나타내는 유일한 데이터 타입입니다. 이는 정수와 실수를 모두 포함하며, 숫자 연산을 단순하고 일관되게 처리할 수 있습니다.
- JavaScript의 숫자는 64비트 IEEE 754 부동소수점 형식으로 표현됩니다.
- 숫자는
Number
객체로 감싸지지 않은 기본형(primitive type)입니다.
let num1 = 42; // 정수
let num2 = 3.14; // 실수
console.log(typeof num1); // 출력: "number"
2. 기본 숫자 연산
JavaScript는 기본적인 사칙연산과 모듈로 연산을 제공합니다. 연산자 사용은 직관적이며, 추가적인 연산 기능은 Math 객체를 통해 제공합니다.
- 덧셈:
+
- 뺄셈:
-
- 곱셈:
*
- 나눗셈:
/
- 나머지:
%
console.log(10 + 5); // 15
console.log(10 - 5); // 5
console.log(10 * 5); // 50
console.log(10 / 5); // 2
console.log(10 % 3); // 1
3. NaN과 Infinity
JavaScript의 number
타입은 특수한 값인 NaN
과 Infinity
를 포함합니다. 이 값들은 연산 중 특정 상황에서 나타날 수 있습니다.
NaN:
"Not-a-Number"의 약자로, 숫자로 간주할 수 없는 값을 나타냅니다.Infinity:
숫자가 양의 무한대 또는 음의 무한대를 나타냅니다.
예시:
console.log(0 / 0); // NaN
console.log(1 / 0); // Infinity
4. 숫자 정밀도와 안전한 연산
JavaScript의 부동소수점 표현 방식으로 인해 정밀도 문제가 발생할 수 있습니다. 예를 들어, 0.1과 0.2를 더하면 0.3이 아닌 0.30000000000000004가 출력됩니다.
정밀도 문제를 해결하는 방법:
- 숫자를 정수로 변환한 후 계산
toFixed()
메서드 사용
let result = (0.1 + 0.2).toFixed(2);
console.log(result); // "0.30"
5. Math 객체를 활용한 고급 연산
Math 객체는 고급 수학적 계산을 지원합니다. 주요 메서드는 다음과 같습니다:
메서드 | 설명 |
---|---|
Math.round() | 가장 가까운 정수로 반올림 |
Math.sqrt() | 제곱근 계산 |
6. 숫자 타입 변환과 암묵적 변환
JavaScript에서는 숫자 타입 간 변환이 명시적 또는 암묵적으로 발생합니다.
- 명시적 변환:
Number()
를 사용하여 변환 - 암묵적 변환: 문자열을 숫자로 자동 변환
7. 실무에서의 활용 예제
숫자는 데이터 처리, 계산, 검증 등의 작업에서 자주 사용됩니다.
function calculateTotal(prices) {
return prices.reduce((sum, price) => sum + price, 0);
}
console.log(calculateTotal([10.99, 20.00, 5.50])); // 36.49
'프로그래밍 언어 > 자바스크립트' 카테고리의 다른 글
undefined 오류를 피하는 JavaScript 코드 작성법 (0) | 2025.02.05 |
---|---|
JavaScript 변수와 상수 정리, ES6 이후 변화와 활용 사례 (0) | 2025.01.31 |
JavaScript boolean, 조건문과 논리 연산에서의 활용법 (0) | 2025.01.23 |
JavaScript에서 null의 역할, 빈 값과 초기화의 의미 (0) | 2025.01.17 |
JavaScript 함수에서 undefined 반환 이해하기 (0) | 2025.01.11 |