Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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 js parseInt()一次过(大数)_Javascript - Fatal编程技术网

Javascript js parseInt()一次过(大数)

Javascript js parseInt()一次过(大数),javascript,Javascript,当我运行以下命令时: parseInt('96589218797811259658921879781126'.slice(0, 16), 10); 输出是 9658921879781124 然而,正如您所看到的,预期的结果是: 9658921879781125 原因是什么?我在谷歌搜索中模糊地了解到JS中存在一些问题,而且这似乎确实超出了这个阈值,但我不知道该怎么办,或者在这个具体案例中发生了什么。多谢各位 编辑:谢谢你的回答,我发现依赖于一个整数这个大小是个坏消息。使用整数的原因是我需要

当我运行以下命令时:

parseInt('96589218797811259658921879781126'.slice(0, 16), 10);
输出是

9658921879781124
然而,正如您所看到的,预期的结果是:

9658921879781125
原因是什么?我在谷歌搜索中模糊地了解到JS中存在一些问题,而且这似乎确实超出了这个阈值,但我不知道该怎么办,或者在这个具体案例中发生了什么。多谢各位


编辑:谢谢你的回答,我发现依赖于一个整数这个大小是个坏消息。使用整数的原因是我需要增加1,然后与字符串的其余部分进行比较。在这种情况下,字符串的前半部分应等于前半部分递增1后的后半部分。什么是替代方法?

这不是JavaScript问题

JavaScript使用(IEEE 754)存储整数和有理数

此格式允许精确表示-253和253之间的整数(
-9007199254740992
9007199254740992
)。在此间隔之外,某些整数值不能用此格式表示;它们四舍五入到可以表示的最接近的整数值。例如,从253到254,一切都乘以
2
,因此可表示的数字是偶数

JavaScript全局对象提供一个常量,该常量表示IEEE 574格式(253-1)可以存储的最大整数值

它还提供了一种方法,您可以使用该方法确定
number
JavaScript类型是否可以安全地存储整数


您使用的数字(
9658921879781124
)太大,无法正确存储在JavaScript或使用双精度浮点格式存储数字的任何其他语言中

编号可能重复。
9658921879781124>的最大安全整数
可能重复的看起来像XY问题,您想对编号做什么?仅供参考:为什么
9658921879781125
变为
9658921879781124