Javascript 와 Number 숫자
자바스크립트를 처음부터 다시 공부해보려고 한다.
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 는 변환할 수 없다.