Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将多个类型字符串解析为数字时的值错误_Javascript - Fatal编程技术网

Javascript 将多个类型字符串解析为数字时的值错误

Javascript 将多个类型字符串解析为数字时的值错误,javascript,Javascript,我有以下字符串: var x = "10207122232230383"; 当解析为整数时,我得到相同的数字+1 var y = parseInt(x, 10); console.log(y); 这将打印10207122232230384。 为什么会发生这种情况?这个数字太大,js无法将其解析为整数。这篇文章对此做了很好的解释: 从实用的角度来看,例如,您可以使用库处理javascript中的大量数据 还有其他库可以帮助您实现同样的目标,这里将详细讨论这些库: 该数字太大,js无法将其解析

我有以下字符串:

var x = "10207122232230383";
当解析为整数时,我得到相同的数字+1

var y = parseInt(x, 10);
console.log(y);
这将打印10207122232230384
为什么会发生这种情况?

这个数字太大,js无法将其解析为整数。这篇文章对此做了很好的解释:

从实用的角度来看,例如,您可以使用库处理javascript中的大量数据

还有其他库可以帮助您实现同样的目标,这里将详细讨论这些库:

该数字太大,js无法将其解析为整数。这篇文章对此做了很好的解释:

从实用的角度来看,例如,您可以使用库处理javascript中的大量数据

还有其他库可以帮助您实现同样的目标,这里将详细讨论这些库:

该数字太大,无法表示为整数。您必须使用
BigNumber
库,因为Javascript没有
long
类型。例如,您可以使用由开发的
BigInt
库,下面我给出了一个如何使用它的示例

document.write('JavaScript中的最大值整数:'+Number.MAX\u SAFE\u integer+'
')) x=新的BigNumber(“10207122232230383”) document.write('您的值除以1:'+x.div(1)+'
') document.write('您的值除以3:'+x.div(3)+'
')

该数字太大,无法表示为整数。您必须使用
BigNumber
库,因为Javascript没有
long
类型。例如,您可以使用由开发的
BigInt
库,下面我给出了一个如何使用它的示例

document.write('JavaScript中的最大值整数:'+Number.MAX\u SAFE\u integer+'
')) x=新的BigNumber(“10207122232230383”) document.write('您的值除以1:'+x.div(1)+'
') document.write('您的值除以3:'+x.div(3)+'
')

在Javascript中,除非交叉,否则为任何整数

这将是无精度的。当它与这个MAX_SAFE_整数相交时,它开始表示IEEE二进制浮点算法标准中指定的64位格式IEEE 754值


为了解决这个问题,您可以使用这个库中的任何一个,或者使用Javascript中的任何整数,除非交叉

这将是无精度的。当它与这个MAX_SAFE_整数相交时,它开始表示IEEE二进制浮点算法标准中指定的64位格式IEEE 754值



要解决这个问题,您可以使用任何一个库或。

Number。MAX\u SAFE\u INTEGER
是您可以在不“失去精度”的情况下用javascript表示的最大值。这个数字超过了那个限度。从上面的代码看,似乎传递的是int而不是原始字符串?@OliverRadini是的。修复了这个问题。@Hacketo有办法克服这个问题吗?@VanderVidi如果你不计算这个数字,就把它作为字符串,否则我想可以使用一些biginteger库。
number.MAX\u SAFE\u INTEGER
是你可以用javascript表示的最大值,而不会“失去精度”。这个数字超过了那个限度。从上面的代码看,似乎传递的是int而不是原始字符串?@OliverRadini是的。修正了这个问题。@Hacketo有办法克服这个问题吗?@VanderVidi如果你不计算这个数字,就把它作为字符串保存,否则我想可以使用一些biginteger库。要不要解释下一票?我会很感激的。不知道,但也许可以试着解释一下这个问题,有人会给你一张追加投票作为补偿。现在呢?当这个问题在其他地方得到了很好的回答时,对我来说,把一大堆细节都说出来是没有意义的。我的坏消息现在更新了答案。要不要解释一下否决票?我会很感激的。不知道,但也许可以试着解释一下这个问题,有人会给你一张追加投票作为补偿。现在呢?当这个问题在其他地方得到了很好的回答时,对我来说,深入一大堆细节是没有意义的。我的坏消息现在更新了答案。