JavaScriptのBigInt型とは?大きな整数の扱い方と活用例
生徒
「先生、JavaScriptでとても大きな数字を扱いたいんですが、普通の数値では正確に扱えないって聞きました。どうすればいいですか?」
先生
「JavaScriptにはBigInt型というとても大きな整数を扱うための特別な型があります。これを使うと、普通の数値の制限を超えた数字も安全に扱えますよ。」
生徒
「普通の数字とBigIntは何が違うんですか?」
先生
「詳しく説明しますね。まずは基本から見ていきましょう!」
1. BigInt型とは?
JavaScriptのBigInt型は、非常に大きな整数を扱うための新しいデータ型です。普通の数値(Number型)は約±9京(9,007,199,254,740,991)までしか正確に扱えません。これを超えると誤差が出てしまいます。
BigIntはその制限を超えて、いくらでも大きな整数を安全に扱えます。大きな数字を使う場面や、金融計算、ID管理などで便利です。
2. BigIntの作り方(使い方)
BigIntは2つの方法で作れます。
- 数字の後に「
n」をつける BigInt()関数を使う
const bigNum1 = 123456789012345678901234567890n;
const bigNum2 = BigInt("123456789012345678901234567890");
console.log(bigNum1);
console.log(bigNum2);
どちらも同じように大きな整数を表します。数字の後に「n」を付ける方法がシンプルです。
3. Number型とBigInt型の違い
JavaScriptの普通の数値は「Number型」と呼ばれ、小数点を含む浮動小数点数です。一方、BigInt型は整数だけ扱います。小数は扱えません。
さらに、Number型とBigInt型は別の型なので、混ぜて計算するとエラーになります。
// BigInt同士は計算できる
const a = 10n;
const b = 20n;
console.log(a + b); // 30n
// NumberとBigIntは混ぜられない(エラーになる)
const c = 10;
console.log(c + a); // エラーになる
計算するときは同じ型に揃える必要があります。
4. BigIntで使える主な演算
BigIntは普通の数値と同じように、足し算・引き算・掛け算・割り算ができます。ただし、割り算の結果は小数点以下を切り捨てた整数になります。
const x = 1000000000000000000000n;
const y = 2000000000000000000000n;
console.log(x + y); // 3000000000000000000000n
console.log(y - x); // 1000000000000000000000n
console.log(x * 2n); // 2000000000000000000000n
console.log(y / x); // 2n(小数点以下は切り捨て)
小数点以下も使いたい場合はNumber型を使いましょう。
5. BigIntを使うときの注意点
- BigIntは整数しか扱えません。小数は使えません。
- Number型と混ぜて計算するとエラーになります。計算前に型を揃えましょう。
- JSONにそのまま変換できません。BigIntをJSONで送るときは文字列に変換する必要があります。
- BigIntはまだ一部の古いブラウザで動かないことがあるので、対応状況を確認してください。
6. BigIntの活用例
BigIntは以下のような場面で役立ちます。
- 超大きなIDを扱うシステム(例えばデータベースのユニークID)
- 金融計算などで非常に大きな整数を安全に計算したい場合
- 暗号化やセキュリティ関連の処理で大きな整数を使う場合
具体的な例として、下記のように超巨大な数を足し合わせることも可能です。
const big1 = 9007199254740991n; // Number型の安全な最大整数
const big2 = 123456789012345678901234567890n;
const sum = big1 + big2;
console.log(sum);
このようにBigIntを使うことで、JavaScriptで扱う数値の幅がぐっと広がります。
まとめ
BigInt型の基本と活用方法
今回の記事では、JavaScriptで扱える非常に大きな整数であるBigInt型について学びました。Number型では安全に扱える整数の上限が約九京(9,007,199,254,740,991)までですが、BigInt型を使うとこの制限を超えても正確に整数を扱うことができます。BigIntは整数専用の型であり、小数は扱えません。また、Number型とBigInt型は別の型として扱われるため、混ぜて計算するとエラーになることも理解しました。
BigInt型の作成方法
BigInt型の数値は二つの方法で作れます。数字の末尾に「n」を付ける方法と、BigInt()関数を使う方法です。どちらも同じように大きな整数を表すことができ、用途や好みに応じて使い分けられます。例えば、const bigNum = 123456789012345678901234567890nのように作成したり、BigInt("123456789012345678901234567890")と文字列から生成することも可能です。
BigInt型でできる演算と注意点
BigInt型では足し算、引き算、掛け算、割り算など基本的な算術演算ができます。割り算の結果は小数点以下が切り捨てられることや、Number型と混ぜて計算するとエラーになることも重要なポイントです。また、JSONに変換するときはそのままでは使えず、文字列に変換する必要があります。さらに古いブラウザでは未対応のこともあるため、利用する環境に注意が必要です。
BigInt型の活用例
BigInt型は、超大きなIDを扱うシステムや金融計算、暗号化やセキュリティ処理などで非常に有用です。Number型では扱えない桁数の整数も安全に計算できるため、特に大規模データや高精度な計算が必要な場面で活躍します。例えば、const sum = 9007199254740991n + 123456789012345678901234567890nのように、非常に大きな数の足し算も可能です。
生徒
「先生、今日学んだBigInt型の使い方はすごくわかりやすかったです。Number型では扱えない大きな整数でも安心して使えるんですね。」
先生
「そうです。特に金融計算や暗号処理、大きなID管理などで役立つので、実務でも非常に便利です。作成方法も二種類あるので、状況に応じて使い分けましょう。」
生徒
「演算でNumber型と混ぜるとエラーになることや、割り算の結果は整数になることも理解できました。これを気をつければ安全に計算できそうです。」
先生
「その通りです。また、JSONに変換する際には文字列に変換することや、ブラウザ対応にも注意してください。BigInt型を正しく理解することで、JavaScriptでの大きな整数の扱いが格段に便利になります。」
生徒
「今日の学びを活かして、実際に大きな数値を扱うプログラムを書いてみたいです。」
先生
「ぜひ挑戦してみてください。BigInt型を使った計算や活用例を自分で試すことで、理解がさらに深まります。」
この記事を読んだ人からの質問
プログラミング初心者からのよくある疑問/質問を解決します
JavaScriptで普通の数値では扱えないくらい大きな数字を安全に扱う方法はありますか?
JavaScriptではNumber型では扱えない非常に大きな整数も、BigInt型を使うことで正確に安全に扱うことができます。BigInt型を使うと金融計算や超大きなID管理など幅広い用途に対応できます。
BigInt型とNumber型は何が違うのですか?
BigInt型は整数専用の型で、非常に大きな整数を扱えます。Number型は小数点を含む浮動小数点数であり、約九京までの整数しか正確に扱えません。計算時には型の違いに注意が必要です。
理解度のクイズ問題
空欄の★に当てはまる内容を答えてください。
BigInt() 関数を使う方法があります。
const big1 = 123456789012345678901234567890n; const big2 = BigInt("123456789012345678901234567890"); console.log(big1); console.log(big2);