JavaScript基本代码告诉我我的错是什么

时间:2019-12-26 06:58:51

标签: javascript function

您好,编码人员请让我知道我哪里出错了以及为什么toFixed()方法不起作用。我是第一次学习javascript,所以我对此并不了解。请豆豆一个帮我。

<!DOCTYPE html>
    <html>
    <body>

    <input id="numb">

    <button type="button" onclick="myFunction()">Submit</button>

    <p id="demo"></p>

    <script>

      function myFunction() {
        var x, y;
        x = document.getElementById('numb').value;
        document.getElementById('demo').innerHTML=x.toFixed(3);
      }

    </script>

    </body>
    </html> 

//***Here toFixed() Method not working***

6 个答案:

答案 0 :(得分:2)

好吧,在使用toFixed()之前,您必须将字符串号转换为浮点型

 function myFunction() {
        var x, y;
        x = document.getElementById('numb').value;
        document.getElementById('demo').innerHTML= parseFloat(x).toFixed(2);
      }
    <input id="numb">

    <button type="button" onclick="myFunction()">Submit</button>

    <p id="demo">hui</p>

答案 1 :(得分:1)

将字符串转换为int

x = document.getElementById('numb').value;

x = parseInt(document.getElementById('numb').value);

答案 2 :(得分:1)

您的x不是数字,因此无法使用固定功能。 您需要先将x转换为数字。为此,请使用以下代码

x = +document.getElementById('numb').value;
x = +x;     
x = parseInt(x);

答案 3 :(得分:0)

您需要更正两件事:

  1. 将输入类型设为number
  2. 在应用parseFloat(x)方法之前,先使用toFixed()

function myFunction() {
  var x, y;
  x = document.getElementById('numb').value;
  debugger
  document.getElementById('demo').innerHTML = parseFloat(x).toFixed(3);
}
<input id="numb" type="number">
<button type="button" onclick="myFunction()">Submit</button>
<p id="demo"></p>

答案 4 :(得分:0)

x在这里不是数字对象。这就是为什么JS找不到附加的方法。

您可以在此处进一步阅读:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed

<!DOCTYPE html>
    <html>
    <body>

    <input id="numb">

    <button type="button" onclick="myFunction()">Submit</button>

    <p id="demo"></p>

    <script>

      function myFunction() {
        var x, y;
        x = document.getElementById('numb').value;
        document.getElementById('demo').innerHTML= Number.parseFloat(x).toFixed(2);
      }

    </script>

    </body>
    </html> 

答案 5 :(得分:0)

要了解该问题,您需要检查什么是变量x类型

console.log(typeof x)

您将找到它的字符串。而toFixed()仅适用于Number类型。因此,在使用toFixed()之前,您需要使用parseInt(x)或parseFloat(x)将x字符串转换为“数字类型”。

function myFunction() {
  var x, y;
  x = document.getElementById('numb').value;
  document.getElementById('demo').innerHTML = parseFloat(x).toFixed(3);
}