错误的可变数据

时间:2016-01-01 13:24:03

标签: javascript html formatting

新年快乐!

这是我的代码:

var totalwin,pradinisStatymas

function Increase()
{
    ....
    ....
    totalwin += pradinisStatymas; //I'm adding increasing totalwin by pradinisStatymas
    return print();
}


function print()
{
    locale[lang][7] = "Total win: ";
    var a="<br>"+locale[lang][7]+totalwin+"<br>";
    bot_debug(a,0);
}

$bCons = $("#botConsole");
function bot_debug(text,type)
{
    switch(type)
    {
        case 0:{$bCons.css("color","#353535"); $bCons.html(text); break;}
        case 1:{$bCons.css("color","#C12E2A"); $bCons.html(text); break;}
        case 2:{$bCons.css("color","#419641"); $bCons.html(text); break;}
    }
}

问题是,如果我设置&#34; pradinisStatymas&#34;到5,它应该将$ bCons的文本改为&#34; 总赢:5 &#34;,而是将文本更改为&#34; 总赢: 05 &#34;

如果我进一步增加它,它会在最后添加pradinisStatymas值&#34; 总赢:055 &#34;。

当我使用javascript控制台而不是html文本时,它工作正常。 我想我需要做一些格式化,但我不确定如何。 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

你遗漏了重要的一位,即你获得pradinisStatymas的方式/位置,但症状使问题相当清楚:pradinisStatymas中的值是字符串。 (也许你是从input元素的value获得的。)所以+=是字符串连接,而不是添加。

如果我们假设totalwin最初设置为0(因此是一个开头的数字),请将pradinisStatymas转换为+=之前的数字,例如:

totalwin += +pradinisStatymas;
// or
totalwin += Number(pradinisStatymas);
// or (if it's meant to be an integer)
totalwin += parseInt(pradinisStatymas, 10);
// or
totalwin += parseFloat(pradinisStatymas);

这些是你的一些选择,第三个假设是一个整数(整数)。我的回答here详细介绍了各种选项。