Javascript 와 Number 숫자

박성룡 ( Andrew park )
4 min readMay 16, 2019

--

자바스크립트를 처음부터 다시 공부해보려고 한다.

C 언어 같은경우 숫자 타입은 Int, Long, Float, Double 등 다양하게 정의 된다.

Javascript 에서 숫자는 number 타입으로 구분되며, 메모리에 IEEE-754 형식을 이용해서 저장한다.

IEEE-754 형태는 부호, 지수, 가수로 이루어 져 있으며, Javascript 에서는 32비트까지 표현이 가능하다.

-(2⁵³-1) 부터 2⁵³ -1 까지는 정확히 IEEE-754로 표현될 수 있지만, 그 초과와 이하 는 IEEE-754로 직접 표현될 수 없으며 가까운 수나 0으로 반올림 한다.

부동소수점

Javascript 에서 소수를 정의하기 위해서는 . 뒤에 숫자만 존재하면 가능하지만, 숫자가 없다면 무시되고 정수로 표현된다.

소수는 정수를 포함한 32비트 까지 표현이 가능하다. 그 이상은 반올림 처리된다.

Javascript 에서 소수 연산은 정확하지 않다.

다른 여러 방법으로 소수 연산을 처리하고 있다.

console.log( 0.1 + 0.2 );
// 0.30000000000000004

지수 표기법

너무 큰 숫자는 exponent 표기법을 사용하여 표현할 수 있다.

이때 e 는 대소문자를 가리지 않는다.

e 앞의 숫자를 뒤에 있는 숫자 만큼 10으로 곱한다.

앞의 숫자를 소수로 작성 할 수도 있다.

소수는 e 뒤에 -를 붙힘으로 표현할 수 있다.

무한대 Infinity

Javascript 에서는 모든 숫자를 표현할 수 없다.

때문에 표현할 수 있는 범위를 넘어가면, Infinity 로 표현한다.

Number.MAX_VALUE 와 Number.MIN_VALUE 으로 범위를 알 수 있다.

Number.POSITIVE_INFINITY 와 Number.NEGATIVE_INFINITY 으로 무한대 값을 가져올 수 있다.

진법

Javascript 의 number 는 기본적으로 10진법으로 표현된다.

8진법과 16진법으로 10진법 수를 만들 수 있다.

8진법은 0 부터 시작한다.

16진법은 0x 부터 시작한다.

만약 범위를 넘어가는 숫자가 입력된다면 10진법으로 처리된다.

parseInt 함수는 특정 진수의 문자열을 10진법으로 반환할 수 있으며, 32 진법까지 가능하다.

변환할 수 없다면 NaN 을 반환한다.

NaN

컴퓨터 연산에서 NaN ( Not a Number )은 연산 과정에서 잘못된 입력을 받았음을 나타내는 기호이다.

주로 Math 객체의 메서드 나 연산 과정에서 잘못된 입력을 받을 때 반환된다.

NaN typeof 는 number 이다.

Javascript 에서 숫자 선언

Javascript 에서 숫자를 선언하는 방법은 리터럴, 전역 Number 객체, Number 생성자 가 있다.

var a = 10;
var b = new Number(10).valueOf();
var c = Number(10);

Number 변환

Javascript 에서 문자를 숫자로 변한하는 방법에는 전역 Number 객체, Number 생성자, parseInt 메서드 가 있다.

Number 객체는 온전한 숫자 형태의 문자열 과 Boolean 을 숫자로 변환할 수 있다.

parseInt 메서드는 숫자로 시작하는 문자열을 숫자로 변환할 수 있지만 Boolean 는 변환할 수 없다.

--

--