JavaScript

BigInt(大きな整数)

BigIntは、非常に大きな整数を扱うためのJavaScriptのデータ型です。通常の数値を扱うNumberでは、整数を正確に表せる範囲に上限があります。範囲を超える整数を正確に扱いたいときにBigIntを使います。

BigIntの書き方

整数リテラルの末尾に n を付けるか、BigInt()を使って値を作成します。

JavaScript

const population = 9007199254740993n;
const anotherPopulation = BigInt("9007199254740993");

console.log(population);
console.log(typeof population); // bigint

Numberとの違い

Numberで正確に扱える最大の整数は 9007199254740991 です。これより大きな整数を正確に扱う必要がある場合は、BigIntを検討します。

ただし、BigIntとNumberは別の型です。異なる型をそのまま加算することはできないため、計算する値の型をそろえます。

JavaScript

const a = 10n;
const b = 20n;
console.log(a + b); // 30n

// 10n + 20 はエラーになる
// BigIntとNumberを混ぜて計算しない

注意点

小数は扱えない
BigIntは整数専用です。小数を扱う場合はNumberなど、別の型を使います。
JSONとの変換に注意する
BigIntはそのままJSON.stringify()で文字列化できません。APIへ送る場合は、文字列に変換するなどの方法を検討します。
比較は型の違いを意識する
BigIntとNumberを比較できる場合もありますが、計算では型をそろえることが安全です。

関連項目