Javascript将bigInt转换为字符串

Javascript将bigInt转换为字符串,javascript,string,node.js,bigint,Javascript,String,Node.js,Bigint,我试图在javascript中将以下大int转换为字符串,但没有成功。我的目标是“582235852866076672” var foo = 582235852866076672; console.log(foo); // 582235852866076700 var baz = "'" + 582235852866076672 + "'"; console.log(baz); // '582235852866076700' var emptyString = 582235852866076

我试图在javascript中将以下大int转换为字符串,但没有成功。我的目标是“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
我觉得这个数字太大了,结果精度下降了。 我将以下内容包括在内,但没有成功:

var bigint = require('bigint');
var bigintLibrary = bigint(582235852866076672).toString();
console.log(bigintLibrary); //582235852866076700
bigint库中的toSting方法状态为:

“将请求基中的bigint实例打印为字符串。”


我感谢所有的帮助和评论。谢谢。

这是一个精度问题——您要返回的数字(
582235852866076672
)大于JavaScript中可表示的最大数字,即2^53或
9007199254740992
您可以使用
BigInt
方法
BigInt.prototype.toLocaleString()
,或
BigInt.protoString.toString()
。希望有帮助


点击这里:获取更多信息。

至于2019年,你可以像这样使用内置的BigInt和BigInt文件:
BigInt(123456780124567890n)
,这是:
BigInt(“1234567890”)
,请参见

谢谢你的回复,但是我如何将整数582235852866076672转换成字符串格式呢?我尝试的每件事都会产生582235852866076700的结果,你可以像我一样在它周围加引号。在JavaScript中不能直接表示大于最大值的数字——它会被截断(如您所见)。感谢我看到的,我更好奇的是如何将整数582235852866076672转换为字符串“582235852866076672”,数据以整数形式输入,我必须将其转换为字符串,我不能只加引号,我必须转换它,所以实际上这似乎是一个精度问题——就像JavaScript不能精确表示那个数字一样。数字大于2^53,这是JavaScript中可表示的最大数字。似乎我必须在数据到达JavaScript端之前将其处理为字符串。数字来自哪里?您所说的数字不能作为普通的javascript数字存在,因此源代码很重要。@aaronduff当数字出现在post请求的参数中时,我尝试了var jsonString=JSON.stringify(582235852866076672);使用相同的结果console.log(jsonString);//582235852866076700。然后,您必须手动解析参数。除非您可以让客户端将其作为字符串而不是数字传递?一旦库将其解析为一个数字,精度就会丢失,因此当它到达您的代码时就为时已晚。