localstorage的Javascript问题(值自行更改)

时间:2017-03-23 22:10:53

标签: javascript local-storage

我目前正在尝试通过localstorage在我的网站上存储数据,例如我是这样做的:

localStorage.setItem("vue",10206726906969851)

当我想要获得价值时,我得到了这个结果:

localStorage.getItem("vue")
-> "10206726906969852"

为什么价值会发生变化?提前感谢您的帮助

1 个答案:

答案 0 :(得分:0)

JavaScript与数字的精确度并不是史诗般的。一个例子:

.2 + .2 = .4

.2 + .2 + .2 = 0.6000000000000001

您使用的数字太大,JS无法保持良好的精确度。在控制台中记录以下内容,您将看到我的意思。

10206726906969851 > Number.MAX_SAFE_INTEGER // returns true

您使用的数字太大了。我过去经历过这个。服务器将为我提供适合Java的数字,但对于JavaScript来说太大了。所以...... JS会搞砸他们。修复的唯一方法是获得JS不会禁止的较短数字。