長整数リテラルを数値に型変換する

長整数リテラルと数値リテラルとの間で算術演算を行うには両方のデータ型を同じにする必要があります。ここでは長整数リテラル(BigInt)を数値リテラル(Number)に型を変更する方法について解説します。

(Last modified: )

長整数リテラルを数値リテラルに変換する

長指数リテラルと整数リテラルとの間で加算演算子や乗算演算子を使用するとエラーになります。

console.log(152n + 38);
>> Uncaught TypeError: Cannot mix BigInt and other types, use explicit conversions

そこでどちらかのデータ型に統一するため型変換を行います。最初に長整数リテラルを数値リテラルに変換する方法です。一つ目の方法は Number 関数を使う方法です。

let bignum = 1033n;
let num = Number(bignum);

console.log(bignum);
>> 1033n

console.log(num);
>> 1033

長整数型の値を数値型に変更することができました。ただし数値型で安全に扱える範囲を超えた長整数型の値を数値型へ変換した場合は精度が落ちる可能性があります。

もう一つの方法はグローバル関数の parseInt 関数を使用する方法です。

let bignum = 1033n;
let num = parseInt(bignum);

console.log(bignum);
>> 1033n

console.log(num);
>> 1033

長整数型の値を数値型に変更することができました。精度が落ちる可能性がある点は先ほどと同じです。

※ parseInt 関数の詳細については「parseInt関数(文字列を整数に変換する)」を参照されてください。

数値リテラルを長整数リテラルに変換する

先ほどとは逆に数値リテラルを長整数リテラルに変換するには BigInt 関数を使用します。

let num = 842;
let bignum = BigInt(num);

console.log(num);
>> 842

console.log(bignum);
>> 842n

数値型の値を長整数型に変更することができました。

-- --

長整数リテラル(BigInt)を数値リテラル(Number)に型を変更する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。