새소식

프론트엔드 공부/자바스크립트

Number 타입(숫자형)

  • -

Number 타입(숫자형)

C언어의 경우 정수냐 실수냐에 따라 int, float 등과 같이 다양한 숫자 타입이 존재합니다다. 
반면에 JS는 느슨한 타입 체크 언어이므로 정수든 실수든 그냥 숫자 타입이라 생각하면 됩니다.

 

Number - JavaScript | MDN

Number 생성자는 숫자를 다루기 위해 상수와 메소드를 가지고 있습니다. 다른 타입의 값은 Number() 함수를 사용하여 숫자로 바꿀 수 있습니다.

developer.mozilla.org


숫자형(number type)

정수 및 부동소수점 숫자(floating point number)를 나타낸다. 즉 정수와 실수 모두 표현이 가능합니다.

let n = 123;
n = 12.345;

100; // 정수를 표현할 수 있습니다.
-100; // 음수를 표현할 수 있습니다.
100.123; // 실수를 표현할 수 있습니다.

typeof 연산자로 해당 값이 숫자 타입인지 확인할 수 있습니다.

typeof 100; // 'number'
typeof -100; // 'number'
typeof 100.123; // 'number'

typeof  "숫자가 아님"; // NaN (Not a Number)

숫자형과 관련된 연산은 다양한데, 곱셈 *, 나눗셈 /, 덧셈 +, 뺄셈 - 등이 대표적이다. 자바스크립트에서는 산술 연산자(arithmetic operator)라고 부른다.

console.log(1 + 2); // 3
console.log(1 - 2); // -1
console.log(1 * 2); // 2
console.log(1 / 2); // 0.5
console.log(9 % 2); // 1 (9를 2로 나눈 나머지 구하기)

숫자형엔 일반적인 숫자 외에 Infinity, -Infinity, NaN같은 '특수 숫자 값(special numeric value)'이 포함된다.

Infinity는 어떤 숫자보다 더 큰 특수 값, 무한대(∞)를 나타낸다. 어느 숫자든 0으로 나누면 무한대를 얻을 수 있다.

console.log( 1 / 0 ); // 무한대

Infinity를 직접 참조할 수도 있다.

console.log( Infinity ); // 무한대

NaN은 계산 중에 에러가 발생했다는 것을 나타내주는 값이다 부정확하거나 정의되지 않은 수학 연산을 사용하면 계산 중에 에러가 발생하는데, 이때 NaN이 반환된다.

console.log( "숫자가 아님" / 2 ); // NaN, 문자열을 숫자로 나누면 오류가 발생합니다.

Math 내장 객체

복잡한 계산을 위해서는 Math 내장 객체를 사용할 수 있다. Math 내장 객체의 대표적인 메서드에 대해서 알아보면 

  • Math.floor(): 괄호 안의 숫자를 내림하여 반환합니다.
  • Math.ceil(): 괄호 안의 숫자를 올림하여 반환합니다.
  • Math.round(): 괄호 안의 숫자를 반올림하여 반환합니다.
  • Math.abs(): 괄호 안의 숫자의 절대값을 반환합니다.
  • Math.sqrt(): 괄호 안의 숫자의 루트값을 반환합니다.
  • Math.pow() : 괄호 안의 첫 번째 숫자를 밑, 두 번째 숫자를 지수인 숫자를 반환합니다.
Math.floor(100.621); // 100
Math.ceil(100.621);  // 101
Math.round(100.621); // 101
Math.round(100.421); // 100
Math.abs(-100); // 100
Math.abs(100); // 100
Math.sqrt(4); // 2
Math.sqrt(2); // 1.4142135623730951
Math.pow(2, 5); // 32

아래 링크를통해 더욱 다양한 Math 내장객체 메서드를 알아볼 수 있다.

 

Math - JavaScript | MDN

**Math**는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체입니다. 함수 객체가 아닙니다.

developer.mozilla.org

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.