JavaScript入門:BigInt(とても大きな整数)
JavaScriptには通常の数値型 Number がありますが、これは「安全に扱える整数の範囲」が限られています。
その限界を超える大きな整数を扱うために登場したのが BigInt です。
Numberの限界
- Numberは「倍精度浮動小数点数」で表現されます。
- 安全に扱える整数は ±9,007,199,254,740,991(約9京)まで。
console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991
JavaScriptこれを超えると「丸め誤差」が出てしまいます。
console.log(9007199254740991 + 1); // 9007199254740992
console.log(9007199254740991 + 2); // 9007199254740992(誤差で同じ値になる)
JavaScriptBigIntの基本
- BigIntは「任意の大きさの整数」を表せる新しい型。
- 末尾に n を付けるか、BigInt() 関数で作ります。
const big1 = 123456789012345678901234567890n; // nを付ける
const big2 = BigInt("123456789012345678901234567890"); // 関数で作る
JavaScript- 型は
"bigint"。
console.log(typeof big1); // "bigint"
JavaScriptBigIntの使い方
- 基本演算は可能(+ – * / %)
const a = 9007199254740991n;
const b = 2n;
console.log(a + b); // 9007199254740993n
console.log(a * b); // 18014398509481982n
JavaScript- Numberとは直接混ぜられない
const n = 10;
const big = 20n;
// console.log(n + big); // TypeError(型が違う)
console.log(BigInt(n) + big); // 30n(NumberをBigIntに変換)
JavaScript- 割り算は整数のみ(小数は切り捨て)
console.log(5n / 2n); // 2n(小数点以下は切り捨て)
JavaScriptよく使う場面
- 巨大なIDやキーの管理
const userId = 123456789012345678901234567890n;
JavaScript- 暗号・ハッシュ計算
- 天文学的な数値や大きな桁数の計算
- 金融や精密計算(ただし小数は扱えないので注意)
注意点
- 小数は扱えない → BigIntは整数専用。
- Numberと混ぜられない → 必要なら型変換する。
- JSONにそのまま入れられない → 文字列に変換して保存する。
ミニ練習
問1: 安全な整数の限界を超える計算をBigIntで正しく行ってみよう。
const max = BigInt(Number.MAX_SAFE_INTEGER);
console.log(max + 2n); // 9007199254740993n(正しく計算できる)
JavaScript問2: NumberとBigIntを足し算する正しい方法は?
const num = 100;
const big = 200n;
console.log(BigInt(num) + big); // 300n
JavaScript問3: 7を3で割った結果をBigIntで求めよ。
console.log(7n / 3n); // 2n(小数点以下は切り捨て)
JavaScriptまとめ
- Numberの安全整数範囲を超えると誤差が出る。
- BigIntは任意の大きさの整数を扱える。
- 末尾に n を付けるか BigInt() で作る。
- Numberとは直接混ぜられないので型変換が必要。
- 整数専用。小数は扱えない。
👉 BigIntを理解すると「超巨大な数値」も安心して扱えるようになります。
次のステップでは「NumberとBigIntの使い分け」を意識すると、より安全なコードが書けます。
