【问题标题】:Function will output nan instead of a number, why?函数会输出 nan 而不是数字,为什么?
【发布时间】:2016-05-16 01:21:36
【问题描述】:
<div class="Er3"> 
        <p>  Α </p>
        <form>Input a number <br><input type="n" id="er3">  </form> 
        <button onclick="QuestionThree()"> submit </button>
        <p id="output"> </p>


        <script> function QuestionThree() {
        var y = document.getElementById("er3");
        var o = parseFloat(y);
        var n = o.toFixed(2);
        var x = y - n;
        var z = Math.abs(x);
        document.getElementById("output").innerHTML = z;
        }</script>


    </div>

我已将函数分解为尽可能匹配,但它仍会返回 nan 而不是数字,为什么?

【问题讨论】:

  • 哪个函数调用返回nan?
  • 没有叫n的输入类型切换到number
  • 停止使用短变量
  • y 不是一个值,它是一个 DOM 元素,你需要调用parseFloat(y.value)
  • Nan 表示不是数字。您正在将对象转换为数字而不是值。您必须使用 geElementById("er3").value 获取价值

标签: javascript nan tofixed


【解决方案1】:

y 持有元素,而不是它的价值。请尝试以下代码:

   <script> 
       function QuestionThree() {
         var y = document.getElementById("er3").value;
         var x = y - parseFloat(y).toFixed(2);
         var z = Math.abs(x);
         document.getElementById("output").innerHTML = z;
       }
     </script>

【讨论】:

    【解决方案2】:

    以下说明可能会对您有所帮助:

    var y = document.getElementById("er3").value;
    

    【讨论】:

      猜你喜欢
      • 2016-04-20
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 2014-04-09
      • 2020-01-10
      相关资源
      最近更新 更多