Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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_Numbers - Fatal编程技术网

JavaScript数字疯狂

JavaScript数字疯狂,javascript,numbers,Javascript,Numbers,我在javascript中有这个数字-12345678900123456789 这个数字显然是一个神奇的数字,因为当解释最低的两位数字时,它会神奇地变成零!!!!!!!通过控制台运行它,您会看到:12345678900123456800 但是等等,还有更多。试试这个号码:123456789001234568999 控制台输出123456789012334570000 这是怎么回事?我是最终失去理智了还是这是某种宇宙玩笑?JavaScript中的数字是浮点数。因此,正如您亲身体验到的,高于某个值的

我在javascript中有这个数字-
12345678900123456789

这个数字显然是一个神奇的数字,因为当解释最低的两位数字时,它会神奇地变成零!!!!!!!通过控制台运行它,您会看到:
12345678900123456800

但是等等,还有更多。试试这个号码:
123456789001234568999

控制台输出
123456789012334570000


这是怎么回事?我是最终失去理智了还是这是某种宇宙玩笑?

JavaScript中的数字是浮点数。因此,正如您亲身体验到的,高于某个值的整数/数字容易出现精度错误


任何大于number.MAX_SAFE_INTEGER或9007199254740991的数字都将遇到精度问题。也就是说,只有不超过15位的整数才能保证精确。

您在那里使用的是什么数据类型?您真的从未听说过某些数据类型的数字限制吗?JavaScript的number type.Lol的容量太大了。那么你认为我如何表示这个数字呢?英雄联盟这是一个数字。我记得,这是JS用于所有数字的数据类型。此外,如果它是一个数字限制,它将被滚动,而不是这个看似随机的舍入废话。我应该如何在javascript中表示64位整数值?@BlinkyTop:@BlinkyTop使用类似的库,或者编写自己的库。它们使用字符串,而不是数字。如前所述,JavaScript本机不支持64位整数,因此您需要某种类型的BigInt库,如RobG发布的库。Felix提供的链接还提到了math.Long库: