【问题标题】:Summing variables with parseInt(); Not Working使用 parseInt() 对变量求和;不工作
【发布时间】:2012-07-05 02:24:49
【问题描述】:

在Javascript中添加多个变量之和的正确方法是什么?

这就是我想要做的。我已经尝试过在变量周围加引号和不加引号。我没有得到 NaN 或 Undefined 或任何东西。没有任何输出。

function setstat(){
document.getElementById('date').value = window.opener.document.getElementById('thisday').value;
document.getElementById('name').value = window.opener.document.getElementById('element_7').value;
document.getElementById('time').value = window.opener.document.getElementById('stwa').value;

inbcalls = window.opener.document.getElementById('element_6').value;
document.getElementById('totinb').value = inbcalls;
inbcallsp = parseInt("inbcalls",10);
asaptotal = window.opener.document.getElementById('asapcalls').value;
document.getElementById('asaptot').value = asaptotal;
asaptotalp = parseInt("asaptotal",10);
faxtotal = window.opener.document.getElementById('faxcalls').value;
document.getElementById('faxtot').value = faxtotal;
faxtotalp = parseInt("faxtotal",10);
obtotal = window.opener.document.getElementById('obcalls').value;
document.getElementById('obtot').value = obtotal;
totalcalls = inboundcallsp + asaptotalp + faxtotalp + obtotalp;
document.getElementById('totsum').value = totalcalls;
}

【问题讨论】:

  • 您是否尝试过在控制台中跟踪它们中的每一个?
  • 好吧,“faxtotal”不是一个整数,而是一个字符串。在不知道你实际在做什么的情况下,很难提供帮助。 JS 控制台日是什么日子?
  • opener和openee的域名一样吗?另外,请检查您的控制台是否有错误。
  • 你知道吗,我被拒绝了,别理我。无论如何,谢谢你们。我花了几个小时来修复最简单的事情,因为我不知道如何使用 firebug。未能指出“inboundcallsp”未定义。

标签: javascript variables add parseint


【解决方案1】:

为什么要引用变量名?

inbcallsp = parseInt("inbcalls",10);

应该是:

inbcallsp = parseInt(inbcalls, 10);

其余的也一样。您想解析变量的值,而不是变量的名称;这些总是会导致NaN

【讨论】:

  • 就像我说的,我尝试了两种方式。两者都不起作用,所以这不是问题。
  • @pabrams:这是一个问题,另一个问题是 OP 自己修复的(变量名错误)。
【解决方案2】:

asaptotalp = parseInt("asaptotal",10); “asaptotal”被识别为字符串而不是变量 你不应该引用它

【讨论】:

  • 我只添加了引号,因为没有它们就无法工作。我只是忘记在发布问题之前再次将它们取出。你觉得我的代码还有什么问题吗?
  • 你可以试试 totalcalls = inboundcallsp*1 + asaptotalp*1 +faxtotalp*1 + obtotalp*1;我通常用这个
【解决方案3】:

使用 parseInt 时,始终将基数指定为 10。

函数签名:parseInt(string, radix)

基数是可选的,但如果省略,JavaScript 假定如下:

如果字符串以“0x”开头,则基数为 16(十六进制) 如果字符串以“0”开头,则基数为 8(八进制)。此功能已弃用 如果字符串以任何其他值开头,则基数为 10(十进制)

示例: parseIn("05") ==== 0 -> 真

parseIn("05", 10) ==== 5 -> 真

【讨论】:

    【解决方案4】:

    不要使用ParseInt,有时它不会返回正确的值。

    最好使用Number,例如:

    var i=Number(your value)
    

    【讨论】:

    • parseInt 是首选的工作方式,当然如果您不指定基数参数parseInt(num,10),您将获得“奇数”值返回。您还需要一个 new 关键字才能使您的号码正常工作。
    • 同意以上。 parseInt(num,10) 是要走的路
    猜你喜欢
    • 2018-12-09
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多