저장을 습관화
자바스크립트 - BigInt, 2^53 이상의 숫자를 표현할 때 본문
자바스크립트가 기본적으로 지원하는 숫자, Number의 범위는
-(2^53)-1 ~ 2^53-1 까지이다.
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
console.log(Number.MIN_SAFE_INTEGER); // -9007199254740991
수가 이보다 커지면
'절대값이 2^53보다 크거나 같은 숫자 리터럴은 너무 커서 정수로 정확하게 표시할 수 없다' 라는 메세지가 나오며
입력한 숫자가 제대로 계산되지 못하는 에러가 발생하게 된다.
console.log(18446744073709551615); // 18446744073709552000
console.log(287346502836570928366); // 287346502836570900000
console.log(18446744073709551615 + 287346502836570928366); // 305793246910280500000
이럴때 사용하는 것이 BigInt이다.
사용법
정수 리터럴의 뒤에 n을 붙이거나, 함수 BigInt()를 호출하여 생성한다.
console.log(18446744073709551615); // 18446744073709552000
console.log(18446744073709551615n); // 18446744073709551615n
console.log(BigInt(18446744073709551615)); // 18446744073709551616n
console.log(18446744073709551615n); // 18446744073709551615n
console.log(287346502836570928366n); // 287346502836570928366n
console.log(18446744073709551615n + 287346502836570928366n); // 305793246910280479981n
주의점 1.
BigInt로 표시한 숫자가 Number로 표시한 숫자와 다른 경우가 발생할 수 있다
console.log(18446744073709551615); // 18446744073709552000
console.log(18446744073709551615n); // 18446744073709551615n
console.log(BigInt(18446744073709551615)); // 18446744073709551616n <- 기본 수보다 1 크다
주의점 2.
BigInt로 표기한 숫자는 Bigint로 표기한 숫자 끼리만 연산할 수 있다
console.log(BigInt(18446744073709551615) + 1);
console.log(BigInt(18446744073709551615) + BigInt(1)); // 18446744073709551617n
console.log(18446744073709551615n + 1n); // 18446744073709551616n
[참조]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/BigInt
BigInt - JavaScript | MDN
BigInt 는 Number 원시 값이 안정적으로 나타낼 수 있는 최대치인 2^53 - 1보다 큰 정수를 표현할 수 있는 내장 객체입니다.
developer.mozilla.org
https://mytutorials.tistory.com/199
Javascript 의 숫자 범위 (2의 53승 - 1) ~ -(2의 53승 - 1)
ouoiouoi.blogspot.com/2017/05/javascript-number.html Javascript Number 범위 Javascript에는 정수형 소수형 구분이 없이 Number라는 자료형 밖에 없다. Number 자료형도 범위가 있을텐데 ECMA Script 명세에는 IEEE 754-2008 포
mytutorials.tistory.com
https://sisiblog.tistory.com/242
[javascript] 자바스크립트 Number 타입 사용 방법
참고: https://www.javascripttutorial.net/javascript-number/ 이 튜토리얼에서는 javascript 숫자 유형과 이를 효과적으로 사용하는 방법에 대해 알아보겠습니다. Javascript의 Number 소개 javascript는 number 유형을 사
sisiblog.tistory.com
프로그래머스 LV.0 두 수의 합
프로그래머스 LV.0 두 수의 합 https://school.programmers.co.kr/learn/courses/30/lessons/181846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록
ctrs.tistory.com
'공부 > JavaScript' 카테고리의 다른 글
자바스크립트 - 배열 메소드 .every(), .some() (0) | 2023.10.03 |
---|---|
자바스크립트 팩토리얼을 재귀함수로 표현 (0) | 2023.09.30 |
자바스크립트 유니코드를 사용하여 알파벳 배열 만들기 (0) | 2023.09.29 |
자바스크립트 - 정수의 진수 변환 (0) | 2023.09.27 |
자바스크립트 문자열과 배열에서 중복값 제거 Set, filter, indexOf, reduce, includes, forEach, for of (0) | 2023.09.22 |