如何将 HTML 的 localStorage 设置为整数而不是字符串? [复制]

Posted

技术标签:

【中文标题】如何将 HTML 的 localStorage 设置为整数而不是字符串? [复制]【英文标题】:How can I set HTML's localStorage to an integer rather than string? [duplicate] 【发布时间】:2016-05-01 04:31:46 【问题描述】:

我在尝试制作的游戏中使用 localStorage 时遇到问题。同样,money 变量设计为每秒增加 1。这是我的一些代码:

var money = 0;
window.onload = function () 
    load();
    window.setInterval(save, 2500);
;
function save()
    localStorage.setItem("money", money);
;
function load() 
    document.getElementById("moneyText").innerhtml = localStorage.getItem("money");
;

我的问题是 save 函数每 2500 毫秒覆盖一次 money 变量。所以我将moneyText 元素的innerHtml 更改为相同的localStorage 对象,如下所示:

function load() 
    document.getElementById("moneyText").innerHTML = localStorage.getItem("money");
    money = localStorage.getItem("money");
;

这确实保存了价值。 然而,现在当它增加时,它会显示如下:

01
011
0111
...

和之前我添加那行一样,它显示为:

1
2
3
...

【问题讨论】:

【参考方案1】:

The values in Local Storage are always a string.

您可以在分配money 之前使用parseFloat。

 money = parseFloat(localStorage.getItem("money"));

【讨论】:

money = +localStorage.getItem("money") money = Number(localStorage.getItem("money")) 兄弟,你是一个救生员,非常感谢! money = parseInt(localStorage.getItem("money"), 10) @Xufox parseInt 是我的第一个想法,但 OP 可能需要一个浮点数(即使问题没有暗示它)。这些其他建议也很好。【参考方案2】:

localStorage 只保存字符串。使用:

money = parseFloat(localStorage.getItem("money"));

localStorage.setItem("money", money.toString());

【讨论】:

以上是关于如何将 HTML 的 localStorage 设置为整数而不是字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何避免localStorage存储的值被修改

如何获得浏览器localStorage的剩余容量

如何在 HTML5 localStorage 中存储对象?

如何使用 jQuery 为所有浏览器绑定到 localStorage 更改事件?

HTML5 localstorage 添加双引号

如何将数组从localStorage映射到reactJS中的表?