【问题标题】:ParseFloat htmlParseFloat html
【发布时间】:2014-02-28 00:16:03
【问题描述】:

我是一名刚刚学习 HTML 的大学生。我必须完成的作业是一个简单的成绩计算器。有一个按钮可以计算所有内容,值转到三个空文本字段(总计、平均值和百分比)。我遇到的问题是计算总数并显示在字段中,但数字后面是 [object]。平均字段显示 NaN,百分比字段保持为空。这是我的代码。

      <input type="button" value="Click to calculate" 
      onclick="fullmark = parseFloat(document.getElementById('fullBox').value);
                science = parseFloat(document.getElementById      ('scienceBox').value);
                math = parseFloat(document.getElementById('mathBox').value);
                computer = parseFloat(document.getElementById('computerBox').value);
                english = parseFloat(document.getElementById('englishBox').value);
                History = parseFloat(document.getElementById('historyBox').value);
               total=science+math+computer+english+history;
               average=(total/5);
               percentage=(total/fullmark)*100;
               document.getElementById('totalBox').value=total;
               document.getElementById('averageBox').value=average;
               document.getElementById('percentageBox').value=percentage;">

【问题讨论】:

  • 你有一个拼写错误 History 而不是 history

标签: html parsefloat


【解决方案1】:

由于您首先将History 写为变量名,然后在计算/分配total 的值时使用history,这是一个不同的变量——JavaScript 中的标识符 的情况敏感。

此时您没有因未定义变量的错误而中止脚本的唯一原因是 window.history 存在 - 它是保持窗口当前导航历史记录的对象。 (所有全局变量都是 window 对象的属性,所以这就是您对 history 的使用得到解决的原因。)由于它是一个对象,[object] 是您在将其传输到字符串上下文时得到的结果(发生这种情况通过使用+,它既是加法又是字符串连接运算符)。

除此之外,将所有代码写入onclick 处理程序是一种糟糕的风格。接下来去学习如何使用适当的函数来处理这样的事情;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 2016-01-28
    相关资源
    最近更新 更多