Javascript js缺失整数

Javascript js缺失整数,javascript,numbers,Javascript,Numbers,Javascript不能使用10100401822940525,它类似于windows中的“conn”文件夹。为什么js会因为这个数字而失败 你可以举个例子 我发现: 我不知道他是否正确,但听起来很合理 这是浮点舍入的一个实例。Javascript中的数字以双精度浮点数的形式存储(AFAIK)。浮点数的精度有限,因此当数字太大时,它们不能再存储为精确整数,需要进行四舍五入 这里是另一个例子,错误更大 如果你想知道为什么数学会起作用,那是因为大多数计算机做浮点数学的精度比存储浮点数学的精度高,所

Javascript不能使用10100401822940525,它类似于windows中的“conn”文件夹。为什么js会因为这个数字而失败

你可以举个例子

我发现:


我不知道他是否正确,但听起来很合理

这是浮点舍入的一个实例。Javascript中的数字以双精度浮点数的形式存储(AFAIK)。浮点数的精度有限,因此当数字太大时,它们不能再存储为精确整数,需要进行四舍五入

这里是另一个例子,错误更大


如果你想知道为什么数学会起作用,那是因为大多数计算机做浮点数学的精度比存储浮点数学的精度高,所以舍入误差通常只发生在将数字存储在变量中时。

在IEEE浮点型数字中,数字越大,数字之间的差距越大。当你看到这个过程是如何进行的,这是有道理的

考虑到存在与非负指数相同数量的负指数可能值。这意味着在0和1之间可能存在的数字的数量与在1和无穷大之间可能存在的数字的数量相同。很明显,1和无穷大之间的数字之间的间隔要远得多。这个间距实际上是分布的,所以离0越远,可能存储的数字之间的差距就越大(没有真正的最大值,只是最终你到达了一个点,没有数字可以与无穷大区分开来)

这实际上非常有效,因为在大多数情况下,当处理较大的数字时,需要的精度较低。相对于数字大小,
10100401822940524
10100401822940526
之间的差异远小于
1
3
之间的差异。能够表示数字
2
比数字
10100401822940525
重要得多,并且限制为64位