[JS study] BigInt

재오·2023년 4월 7일
2

JavaScript

목록 보기
33/48
post-thumbnail

프로그래머스 문제를 접하면서 값이 큰 수를 계산할 때 실행 오류가 뜨는 현상이 지속적으로 발생하였다. 구글링을 하는 과정에서 자바스크립트에서는 굉장히 큰 수에 대해서는 정확하게 표현하는 방법이 없다는 것을 알 수 있었고 이를 해결하기 위해 나온 것이 nBigInt라는 점도 알았다.

n

숫자 뒤에 n을 적어주면 굉장히 큰 수에 대해서도 정확한 계산이 가능해진다.

console.log(10000n + 10000n); // 20000n
console.log(324234254295452024194n * 10000n); // 3242342542954520241940000n

시간초과가 뜰만한 큰 수에도 불구하고 계산이 가능해진다.

BigInt

BigInt 역시 함수처럼 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 형으로 나눗셈을 한다면 소수점을 제외한 몫 값만 출력한다.

profile
블로그 이전했습니다

1개의 댓글

comment-user-thumbnail
2023년 4월 10일

치트키 노노

답글 달기