프로그래머스 문제를 접하면서 값이 큰 수를 계산할 때 실행 오류가 뜨는 현상이 지속적으로 발생하였다. 구글링을 하는 과정에서 자바스크립트에서는 굉장히 큰 수에 대해서는 정확하게 표현하는 방법이 없다는 것을 알 수 있었고 이를 해결하기 위해 나온 것이 n
과 BigInt
라는 점도 알았다.
숫자 뒤에 n
을 적어주면 굉장히 큰 수에 대해서도 정확한 계산이 가능해진다.
console.log(10000n + 10000n); // 20000n
console.log(324234254295452024194n * 10000n); // 3242342542954520241940000n
시간초과가 뜰만한 큰 수에도 불구하고 계산이 가능해진다.
BigInt
역시 함수처럼 BigInt(숫자)를 써주게 된다면 위와 같이 큰 수에 대해서도 계산이 가능해진다.
BigInt
는 정수가 아니다. 따라서 다른 정수와 계산을 하게 된다면 에러가 발생하게 된다.
const huge = BigInt(1231354);
const num = 32;
console.log(huge * num); // TypeError
이러한 경우에는 정수타입의 숫자를 BigInt 타입으로 형변환을 해주면 된다.
const huge = BigInt(1231354);
const num = BigInt(32);
console.log(huge * num);
BigInt 형은 Math 객체의 메서드를 이용할 수 없다.
BigInt 형으로 나눗셈을 한다면 소수점을 제외한 몫 값만 출력한다.
치트키 노노