javascript BigIntを使用する
- 作成日 2020.10.29
- 更新日 2022.07.15
- javascript
- javascript
javascriptでは、Number型は53bit(2の53乗)までの値しか取り扱いできないため、それ以上の数値を扱う場合は、BigIntを使用します。
環境
- OS windows10 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 103.0.5060.114
BigInt使い方
BigIntを使用すると、53bit(2の53乗)である「 9007199254740992 」より大きな値を扱うことが可能です。
console.log(2 ** 53) // 乗演算子で2の53乗
// 9007199254740992
console.log(2 ** 53 + 1) ← 扱うことができない
// 9007199254740992
BigIntを使用するには、数値の後ろに「n」を付ける必要があります。
console.log(2n ** 53n + 1n)
// 9007199254740993n
もしくは「BigInt()」を使用します。
console.log( BigInt(2 ** 53) + BigInt(1) )
// 9007199254740993n
「BigInt()」だと文字列の数値にも使用できます。
console.log( BigInt('9007199254740992') + BigInt(1) )
// 9007199254740993n
2進数などにも使用できます。
console.log( 0b100000000000000000000000000000000000000000000000000001n )
// 9007199254740993n
演算
BigIntはBigInt同士でないと、使用できません。
console.log(2n ** 53n + 1)
// Uncaught TypeError: Cannot mix BigInt and other types, use explicit conversions
また少数に使用することもできません。
let num = 1.2n // Uncaught SyntaxError: Invalid or unexpected token
なので、割り算で少数になる場合は丸められます。
console.log(3n / 2n); // 1n
console.log(5n / 2n); // 2n
console.log(8n / 3n); // 2n
console.log(1n / 3n); // 0n
型
型は「BigInt」となります。
console.log(typeof 10n); // bigint
console.log(typeof BigInt(10)); // bigint
エラーの出るブラウザ
BigIntは、Microsoft Edge( 42.17134.1098.0 ) だとエラーとなります。
-
前の記事
CentOs8 キャッシュを削除する 2020.10.29
-
次の記事
docker-compose up時にエラー「invalid port specification:」が発生した場合の対処法 2020.10.29
コメントを書く