JavaScriptのBigIntとは?大きな整数を扱う方法を解説
先生と生徒の会話形式で理解しよう
生徒
「先生、JavaScriptでとても大きな整数を扱うとき、普通の数値だと正しく計算できません。どうすればいいですか?」
先生
「その場合は、BigIntという特別な数値型を使うと安全に扱えます。BigIntは任意の桁数の整数を表現できる型です。」
生徒
「普通のNumber型とはどう違うんですか?」
先生
「Number型は最大で約1.797×10³⁰⁸までしか正確に扱えませんが、BigIntは桁数に制限がほとんどなく、非常に大きな整数を正確に計算できます。」
1. BigIntとは?
JavaScriptのBigIntは、大きな整数を扱うための型です。通常のNumber型は安全に扱える整数が約9007199254740991(2⁵³−1)までですが、それ以上の数値を扱う場合、精度が失われることがあります。BigIntを使うと、その制限を超える整数も正確に扱えます。
2. BigIntの基本的な使い方
BigIntは数値の末尾にnを付けることで作成できます。
// BigIntの作成
let bigNumber = 123456789012345678901234567890n;
console.log(bigNumber);
// Number型との違い
let regularNumber = 12345678901234567890; // Number型
console.log(regularNumber);
123456789012345678901234567890
12345678901234567000
このように、Number型では桁数が大きくなると精度が失われますが、BigIntでは正確に表示されます。
3. BigIntでの計算方法
BigInt同士であれば、加減乗除の計算が可能です。ただし、Number型とは混ぜて計算できないので注意が必要です。
// BigInt同士の計算
let a = 1000000000000000000000n;
let b = 2000000000000000000000n;
let sum = a + b;
let diff = b - a;
let product = a * 2n;
let quotient = b / 2n;
console.log(sum);
console.log(diff);
console.log(product);
console.log(quotient);
3000000000000000000000
1000000000000000000000
2000000000000000000000
1000000000000000000000
4. BigIntをNumber型と混ぜるときの注意
BigIntとNumber型を直接計算するとエラーになります。必要に応じてBigInt()で型変換してから計算しましょう。
let big = 1000n;
let num = 500;
// 型変換して計算
let sum = big + BigInt(num);
console.log(sum);
1500
5. 実務でのBigInt活用例
BigIntは、ブロックチェーンや暗号通貨、金融計算など、非常に大きな整数を正確に扱う必要がある場面で活躍します。例えば暗号鍵の計算や非常に大きな取引IDなどです。
// ブロックチェーンの大きな数値
let transactionId = 1234567890123456789012345678901234567890n;
console.log(transactionId);
1234567890123456789012345678901234567890
BigIntを使うことで、桁数の多い整数でも正確に管理できます。