자바스크립트에서 아주 큰 숫자를 넣거나 소수점이 큰 숫자를 넣을때 0을 줄일 수 있는 방법이 e를 사용하는 것이다.
1e3 // 1000
3.2e3 // 3200
10.3e4 // 103000
예시와 같이 숫자 뒤에 e를 넣고 뒤에 넣고 싶은 0의 갯수를 e뒤에 넣으면 된다.
소수로 활용하고 싶을때는 e-뒤에 임의의 숫자 n을 넣으면 n만큼 소수점이 왼쪽으로 이동한다.
아래 예시처럼 활용할 수 있다.
3e-2 // 0.03
1.3e-3 // 0.0013
19.3e-4 // 0.00193
진수를 사용할 것이라고 자바스크립트로 명시하는 방법은 각각
100을 2, 8, 16 순서대로 표현하는 방법을 아래 예시로 작성해 보겠다.
0b1100100 // 2진수로 100을 표현하는 법
0o144 // 8진수로 100을 표현하는 법
0x64 // 16진수로 100을 표현하는 법
반대로 임의의 num 이라는 숫자를 16진수 표현하는 방법을 알고 싶을때는 toString()메서드를 사용하면 된다.
아래 예시는 255을 16진수로 표현할때의 값을 알아내는 방법이다.
let num = 255;
num.toString(16); // "ff"
여기서 유의해야할 점은 string형태로 출력된다는 것이다.
자바스크립트에서 숫자는 64비트형으로 표현하며, 52비트는 숫자를 저장하는 데 사용되고, 11비트는 소수점 위치를, 1비트는 부호를 저장하는데 사용된다.
그래서 숫자가 너무 커지거나 소수점이 왼쪽으로 너무 많이 이동하면, 정밀도 손실이 일어난다.
console.log(9999999999999999999); // 10000000000000000000
console.log(0.1 + 0.2) // 0.30000000000000004
이렇게 사람의 상식으로는 이해할 수 없는 일이 일어나기도 한다.
그래서 0.1+0.2를 정확하게 표현하고 싶으면 num.toFixed(n)를 이용하면 된다.
num.toFixed(n)은 num를 n 번째 소수까지 '문자열'로 출력한다.
let num = 0.1 + 0.2 // 0.30000000000000004 num.toFixed(2) // "0.30" +num.toFixed(2) // 0.3 숫자형으로 변환하고 싶다면 +를 앞에 넣어라