Javascript convert bigInt to string

srm picture srm · Mar 29, 2015 · Viewed 9.1k times · Source

I am trying to convert the following big int to a string in javascript with no success. My goal would end up with '582235852866076672'

var foo = 582235852866076672;
console.log(foo); // 582235852866076700

var baz = "'" + 582235852866076672 + "'";
console.log(baz); // '582235852866076700'

var emptyString = 582235852866076672+'';
console.log(emptyString); // 582235852866076700

var n = foo.toString();
console.log(n); // 582235852866076700

I figured the number was too big and was loosing precision as a result. I included the bigint library with no success:

var bigint = require('bigint');
var bigintLibrary = bigint(582235852866076672).toString();
console.log(bigintLibrary); //582235852866076700

The method toSting in the bigint library states:

"Print out the bigint instance in the requested base as a string."

I appreciate all help and comments. Thanks.

Answer

Jeff Hubbard picture Jeff Hubbard · Mar 29, 2015

This is a precision issue--the number you're getting back (582235852866076672) is bigger than the max number representable in JavaScript, which is 2^53 or 9007199254740992.