【问题标题】:javascript integer to string errorjavascript整数到字符串错误
【发布时间】:2011-08-19 21:41:31
【问题描述】:

如果你已经和我一起讨论过这件事,真的很抱歉。好消息:我取得了进步。坏消息:进展缓慢。

我有一个从某个数字开始计数的函数。这是一个很大的数字,我需要在正确的位置插入逗号。这是我放在一起的代码。起初它可以工作,但随后显示 NaN...

http://jsfiddle.net/blackessej/TT8BH/7/

function createCounter(elementId,start,end,totalTime,callback)
{
    var jTarget=jQuery("#"+elementId);
    var interval=totalTime/(end-start);
    var intervalId;
    var current=addCommas(start)+'';
    var f=function(){
        jTarget.text(current);
        if(current==end)
        {
            clearInterval(intervalId);
            if(callback)
            {
                callback();
            }
        }
        ++current;
    }
    intervalId=setInterval(f,interval);
    f();
}
jQuery(document).ready(function(){
    createCounter("counter",12714086,9999999999,10000000000000,function(){
        alert("finished")
    })
})

function addCommas(str) {
    var amount = new String(str);
    amount = amount.split("").reverse();

    var output = "";
    for ( var i = 0; i <= amount.length-1; i++ ){
        output = amount[i] + output;
        if ((i+1) % 3 == 0 && (amount.length-1) !== i)output = ',' + output;
    }
    return output;
}

【问题讨论】:

标签: javascript string counter


【解决方案1】:

问题来自在数字中添加逗号。只需将数字转换为逗号字符串,然后再将其放入 .text() 函数:

http://jsfiddle.net/TT8BH/11/

【讨论】:

    【解决方案2】:

    当您调用 addCommas 时,您将返回一个字符串,该字符串的格式适合人类使用,但对于 ++ 之类的内容却很糟糕。您需要跟踪和修改起始变量,仅在必要时转换为字符串:

    var f=function(){
        jTarget.text(addCommas(start));
        if(start==end)
        {
            clearInterval(intervalId);
            if(callback)
            {
                callback();
            }
        }
        ++start;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-23
      • 2013-04-27
      • 2016-06-08
      • 1970-01-01
      • 2014-12-16
      • 2016-11-25
      • 1970-01-01
      相关资源
      最近更新 更多