首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript数学给出了不正确的结果,我如何解决这个问题?

Javascript数学给出了不正确的结果,我如何解决这个问题?
EN

Stack Overflow用户
提问于 2014-10-03 10:30:43
回答 2查看 46关注 0票数 0

所以我有一个Javascript的问题,当我执行一个函数时,它给了我错误的数字。基本上我设置了"Total“等于"Total”加上" persec ",persec是我希望每秒添加到"Total“中的数字。所以如果"persec“等于4,我希望它每秒将4加到"Total”上。

我有一个for循环,它作为我的计时器来单击一个隐藏的按钮,它被设置为获取任何persec值并将其添加到我的合计中。我的问题是,在persec传递一个值1之后,它开始错误地添加。例如,如果我将persec设置为2,我的总数将以每秒4的速度增加。它应该只增加2。例如,如果persec设置为3,它将每秒增加9。它看起来像是把每秒的平方加到了总数上,我不知道为什么。

以下是使用以下Javascript编辑的按钮和文本:

代码语言:javascript
复制
<p>Per second: <span id="persec">0</span></p>
<p>Total: <span id="total">0</span></p>
<button id="totalholder" hidden="true"></button>

这是我的“计时器”,它在它自己的函数中,不适用于这个问题,这就是为什么它看起来不合适的原因:

代码语言:javascript
复制
var totalCount;
clearInterval(totalCount);

    totalCount = setInterval(function () {
        if (persec > 0) {
            for (var i = 0; i < persec; i++) {
                $("#totalholder").click();
            }
        }
    }, 1000);

这是计时器按下的隐藏按钮:

代码语言:javascript
复制
$(function() {
$('#totalholder').click(function(){
    totalHolder1();
});

function totalHolder1() {
var persec = parseInt($('#persec').text());
var total = parseInt($('#total').text());

    total = isNaN(total) ? 0 : total + persec;

    $("#persec").text(persec);
    $("#total").text(total);
}
});
EN

回答 2

Stack Overflow用户

发布于 2014-10-03 10:41:51

去掉计时器函数中的循环:

代码语言:javascript
复制
totalCount = setInterval(function() {
    var persec = parseInt($("#persec").text(), 10);
    if (persec > 0) {
        $("#totalholder").click();
    }
}, 1000);

在您的原始代码中,单击处理程序将总数增加persec,而for循环执行的是persec次,这是它的平方。因为你不想做多次,所以你不需要这个循环。

票数 1
EN

Stack Overflow用户

发布于 2014-10-03 10:38:01

我不小心把它修好了。

我所要做的就是将我的for循环改为:

代码语言:javascript
复制
for (var i = 0; i < persec; i = i + persec)

我不确定为什么这个解决了它,我以前用另一种方式做过。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26172487

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档