javascript tofixed小数位不起作用

时间:2018-04-25 08:54:09

标签: javascript

我脚本中的错误是什么? 它必须有固定的东西,不确定它是否应该是正确的位置?

四舍五入似乎不起作用。仍然有无穷无尽的小数位。



function output() {
  var value1 = document.getElementById('value1').value;
  var value2 = document.getElementById('value2').value;
  var value3 = document.getElementById('value3').value;
  document.getElementById('result1').innerHTML = (parseFloat(value1) + parseFloat(value2)) / parseFloat(value3).toFixed(2);
}

<input id="value1" type="text" onchange="output();" />
<span> + </span>
<input id="value2" type="text" onchange="output();" />
<span> / </span>
<input id="value3" type="text" onchange="output();" />
<p id="result1"> </p>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

您在toFixed的结果上调用parseFloat(value3),然后将其用作*的右侧操作数 - 再次将其重新转换为数字。然后,您将获取乘法产生的数字并将其分配给innerHTML,然后使用默认的toString将其转换为字符串。

您可能打算将toFixed(2)应用于整体结果:

document.getElementById('result1').innerHTML = ((parseFloat(value1) + parseFloat(value2)) * parseFloat(value3)).toFixed(2);
// --------------------------------------------^--------------------------------------------------------------^

function output() {
  var value1 = document.getElementById('value1').value;
  var value2 = document.getElementById('value2').value;
  var value3 = document.getElementById('value3').value;
  document.getElementById('result1').innerHTML = ((parseFloat(value1) + parseFloat(value2)) / parseFloat(value3)).toFixed(2);
}
<input id="value1" type="text" onchange="output();" />
<span> + </span>
<input id="value2" type="text" onchange="output();" />
<span> / </span>
<input id="value3" type="text" onchange="output();" />
<p id="result1"> </p>