Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从输入字段使用.toFixed()_Javascript - Fatal编程技术网

Javascript 如何从输入字段使用.toFixed()

Javascript 如何从输入字段使用.toFixed(),javascript,Javascript,我似乎不明白为什么我不能让.toFixed()在我的代码中工作。我尝试过不同的变化,但缺少一些东西 我在运行代码时遇到以下错误 未捕获的TypeError:document.getElementById(…).value.toFixed不是 函数 我的代码: <input type="number" id="num1"> <p>+</p> <input type="number" id="num2"> <p>=</p> &l

我似乎不明白为什么我不能让
.toFixed()
在我的代码中工作。我尝试过不同的变化,但缺少一些东西

我在运行代码时遇到以下错误

未捕获的TypeError:document.getElementById(…).value.toFixed不是 函数

我的代码:

<input type="number" id="num1">
<p>+</p>
<input type="number" id="num2">
<p>=</p>
<p id="result"></p>
<br>
<button id="submit" onclick="calculate()">Calculate</button>

<script>
  function calculate(){
    const a = document.getElementById("num1").value;
    const b = document.getElementById("num2").value;

    let finalAnswer = a.toFixed(2) + b.toFixed(2);
    document.getElementById("result").innerHTML = finalAnswer;
    console.log(a);
    }
</script>

+

=


算计 函数计算(){ 常量a=document.getElementById(“num1”).value; 常量b=document.getElementById(“num2”).value; 设finalAnswer=a.toFixed(2)+b.toFixed(2); document.getElementById(“结果”).innerHTML=finalAnswer; 控制台日志(a); }
.toFixed()是一种数字方法。当您从输入中获取值时,它是一个字符串。因此,您必须将其转换为数字。 您可以使用以下命令转换为数字:
Number()
因此,您的代码应该如下所示:

常量a=数字(document.getElementById(“num1”).value);常量b=编号(document.getElementById(“num2”).value)


这是因为您的输入将作为字符串而不是数字进行计算,这是我解决它的多种方法之一:

const a = document.getElementById("num1").value - 0;
const b = document.getElementById("num2").value - 0;

toFixed
是在
Number
中定义的,因此在使用之前必须先将输入值转换为数字

为此,您可以使用
Number
构造函数传递要转换的文本:

let myNumber = Number(someString);
之后,您可以使用
toFixed()
输出结果,该结果将为您提供一个
字符串
,其小数点后的数字与您传递给它的数字相同:

console.log(myNumber.toFixed(2));
考虑到所有这些因素,您可以将代码更改为:

函数计算(){
常量a=document.getElementById(“num1”).value;
常量b=document.getElementById(“num2”).value;
//在添加之前,将两个输入转换为数字
设finalAnswer=数(a)+数(b);
//toFixed仅在需要输出时在此处固定
document.getElementById(“结果”).innerHTML=finalAnswer.toFixed(2);
控制台日志(a);
}

+

=



Calculate
toFixed是一个数字,但是当您获得输入值时,它将是一个字符串。试着先转换成一个数字。