How to convert strings to bigInt in JavaScript

巧了我就是萌 提交于 2019-12-29 07:38:08

问题


I need to convert a string to BigInt like BigInteger in Javascript

Example

var reqId = "78099864177253771992779766288266836166272662";
var result = parseInt(reqId);
document.write(result);

Resultant value not matching since JavaScript only allows integers up to (2^53)-1.

Is there any way to overcome this?


回答1:


BigInt is now a native JavaScript language feature. It's at Stage 3 in the TC39 process and it's shipping in V8 v6.7 and Chrome 67.

To turn a string containing a valid numeric literal into a BigInt, use the global BigInt function:

const string = '78099864177253771992779766288266836166272662';
BigInt(string);
// 78099864177253771992779766288266836166272662n

If you just want to hardcode the numeric value into your code, there is no need to convert from a string; use a BigInt literal instead:

const value = 78099864177253771992779766288266836166272662n;



回答2:


You can use a JavaScript lib called BigInteger.js for the purpose.it is an arbitrary-length integer library for Javascript, allows arithmetic operations on integers of unlimited size, notwithstanding memory and time limitations.This lib can be download from this link.Like var largeNumber = bigInt("75643564363473453456342378564387956906736546456235345"); You can find documentation of lib here https://www.npmjs.com/package/big-integer




回答3:


You can use 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


来源:https://stackoverflow.com/questions/36826748/how-to-convert-strings-to-bigint-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!