JavaScriptでBigInteger
のように文字列をBigIntに変換する必要があります
例
var reqId = "78099864177253771992779766288266836166272662";
var result = parseInt(reqId);
document.write(result);
JavaScriptは(2 ^ 53)-1までの整数しか許可しないため、結果の値が一致しません。
これを克服する方法はありますか?
BigInt
がネイティブJavaScript言語機能になりました。 TC39プロセスのステージ3で、V8 v6.7とChrome 67。
有効な数値リテラルを含む文字列をBigInt
に変換するには、グローバルBigInt
関数を使用します。
const string = '78099864177253771992779766288266836166272662';
BigInt(string);
// 78099864177253771992779766288266836166272662n
数値をコードにハードコードするだけの場合は、文字列から変換する必要はありません。代わりにBigInt
リテラルを使用してください:
const value = 78099864177253771992779766288266836166272662n;
BigInteger.jsと呼ばれるJavaScriptライブラリを使用できます。これは、JavaScriptの任意の長さの整数ライブラリであり、無制限の整数の算術演算を可能にしますサイズ、メモリと時間の制限があります。 このlibはこのリンクからダウンロードできます のようにvar largeNumber = bigInt("75643564363473453456342378564387956906736546456235345");
libのドキュメントはこちら https://www.npmjs .com/package/big-integer
mathjs を使用できます:
var reqId = "78099864177253771992779766288266836166272662";
var myBigNumber = math.bignumber(reqId);
var res = math.add(myBigNumber, 1);
console.log(myBigNumber.toString());
// 7.8099864177253771992779766288266836166272662e+43
console.log(res.toString());
// 7.8099864177253771992779766288266836166272663e+43