如何将 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 设置为整数而不是字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章