1. 숫자 표기법
숫자가 큰 경우 자바스크립트에서 숫자를 입력할 때는 지수 표기법을 사용한다.
지수 표기법은
숫자e숫자
이렇게 쓰는 방법으로
앞의 숫자는 음수, 양수, 소수 모두 가능하고
뒤의 숫자는 뒤에 붙는 0의 개수(10의 거듭제곱)를 표현한다.
뒤의 숫자는 양의 정수 또는 음의 정수만 가능하다.
만약 뒤에 붙는 숫자가 음의 정수가 된다면
10의 거듭제곱만큼 나누라는 의미가 된다.
즉, 소수를 나타낼 때 사용하면 된다.
//숫자 표기법_지수 표기법
console.log(1e9); //1000000000
console.log(25e5); //2500000
console.log(5.3e3); //5300
console.log(-7.2e7); //-72000000
console.log(-9.2e-5); //-0.000092
console.log(9e-2); //0.09
또한
16진법, 8진법, 2진법도 표기가 가능하다.
16진법은 0x
8진법은 0o
2진법은 0b
이렇게 표기한다.
//16진법(Hexadecimal)
//8진법(octal)
//2진법(binary numeral system)
let hex1 = 0xff; // 255
let hex2 = 0xFF; // 255
let octal = 0o377; //255
let binary = 0b11111111; //255
console.log(hex1);
console.log(hex2);
console.log(octal);
console.log(binary);
위의 코드에서 16진법, 8진법, 2진법으로 나타낸 숫자는
모두 10진법으로 나타냈을 때 255다.
1-2. 숫자형 메소드(toFixed메소드)
자바스크립트에서는 숫자도 객체이다. 따라서 메소드를 사용할 수 있는데
메소드를 사용하면 숫자형은 '문자열'자료형으로 형태가 변한다.
toFixed라는 메소드를 살펴보자.
우선 toFixed는 소수점 자리수까지 반올림시켜 나타내주는 메소드이다.
toFixed(3)이라고 적으면 소수점 3번째자리까지 반올림하라는 뜻이다.
예시를 보자!
//Number 숫자도 객체다!
let myNum = 0.35612345678;
//toFixed(0~100)
console.log(myNum.toFixed(3));
console.log(myNum.toFixed(6));
console.log(myNum.toFixed(12));
위의 예시처럼소수점 3자리수까지, 6자리수까지, 12자리수까지 반올림해서 보여주라는 코드가 된다.
또한 12자리수처럼 원래 있는 숫자에서 자리수를 넘어가버리면 0으로 표시가 된다.
즉, 마지막 코드는 콘솔에 0.346123456780
이렇게 표시된다.
주의할 점은 이렇게 콘솔에 출력된 결과 값들이 모두 '문자열'이라는 것이다.
숫자라고 착각하고 사칙연산을 하게 되면, 특히 더하기의 경우 문자열 더하기 연산처럼두 문자열이 나란히 출력된다.
따라서! Number함수를 이용해서 숫자형으로 형 변환을 꼭 해주고 더하기 연산을 하는 것이 좋다!
//Number 함수로 문자열을 숫자로 바꾸어주기!
let myNum = 0.35612345678;
//toFixed(0~100)
console.log(Number(myNum.toFixed(12)));
이 경우 Number함수가 붙었기 때문에 결과는0.34612345678까지만 출력이 된다.
Number함수는 아래 예시처럼+로 대체가 가능하다!
//Number 숫자도 객체다!
let myNum = 0.35612345678;
//Number함수는 +와 같다.
console.log(Number(myNum.toFixed(12)));
console.log(+myNum.toFixed(12));
1-3. toString 메소드
toString메소드는
파라미터로 전달하는 숫자의 진법으로 숫자를 바꿔주는 메소드이다.
let myNum =455
//toString(2 ~36) 결과값은 문자열!
console.log(myNum.toString(3));
console.log(myNum.toString(6));
console.log(myNum.toString(12));
//곱하기 계산 등을 해주면 문자열에서 자동으로 숫자형 형 변환!
console.log(0x7b.toString(10) * 1); //숫자형 123으로 출력됨.
위의 코드는
3진법, 6진법, 12진법으로 각각 바꾸어 주는 모습이다.
중요한 것은 이 결과 값도 문자열이다!!!
그런데 자바스크립트에서는 문자열끼리 사칙연산을 했을 때 자동으로 형 변환을 하여 계산을 해주기 때문에
0x7b.toString(10) * 1 이런식으로 곱하기 계산이 붙으면
결과 값은 숫자형으로 출력된다.
0x7b를 10진법으로 바꾼 값 123 에 곱하기 1을 해서
콘솔에는 숫자 123이 출력되는 것이다!
1-4. 숫자형 메소드 사용 주의법
만약
숫자.메소드
이렇게 변수를 사용하지 않고
숫자를 바로 사용하고 싶다면
숫자..메소드
점을 두 개 찍어주어야한다.
왜냐면
점을 하나 찍어주면 정수라고 인식하지 않고 소수라고 인식하기 때문이다!
예시를 살펴보자!
let myNum =455
//정수 옆 점 두개, 괄호로 묶어주기, 변수 사용하기!
console.log(245..toString(3));
console.log((245).toString(6));
console.log(myNum.toString(12));
이렇게 245뒤에 점을 두 개 찍던지
245를 괄호로 묶어 주던지
아니면 myNum처럼 변수로 만들어주어야한다.
다음 글에서는 Math의 객체들을 살펴보겠다!!!!
JavaScript 기초 : 자료형 업그레이드 2. Math 객체