.tofix(2)小数后返回2个以上的数字

时间:2017-09-01 10:29:21

标签: javascript tofixed

我有以下代码:     

在厘米字段中键入一个值,将值转换为英尺:     

<p>
<label>Centimeter</label>
<input id="inputCentimeter" type="number" placeholder="Centimeter" 
oninput="LengthConverter(this.value)" 
onchange="LengthConverter(this.value)">
</p>
<p>Feet: <span id="outputFeet"></span></p>

<script>
function LengthConverter(valNum) { document.getElementById("outputFeet").innerHTML=valNum*0.0328084.toFixed(2);
}
</script>

在大多数输入上,返回输出的格式正确,但在某些给定的大小(例如155cm)上,它会返回几个小数:

155 Cm=4.6499999999999995 Ft

2 个答案:

答案 0 :(得分:2)

使用()包装先前的操作。它首先评估对该号码的function调用,因此首先0.0328084.toFixed(2)然后使用valNum进行结果。

(valNum*0.0328084).toFixed(2)

实施例

&#13;
&#13;
function LengthConverter(valNum) {
   document.getElementById("outputFeet").innerHTML = (valNum*0.0328084).toFixed(2);
}
&#13;
<p>
<label>Centimeter</label>
<input id="inputCentimeter" type="number" placeholder="Centimeter" 
oninput="LengthConverter(this.value)" 
onchange="LengthConverter(this.value)">
</p>
<p>Feet: <span id="outputFeet"></span></p>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先计算值,然后进行四舍五入。要首先计算值,请将它们放在括号内。

(valNum*0.0328084).toFixed(2)

您的代码在下面进行了修改。

<p>
<label>Centimeter</label>
<input id="inputCentimeter" type="number" placeholder="Centimeter" 
oninput="LengthConverter(this.value)" 
onchange="LengthConverter(this.value)">
</p>
<p>Feet: <span id="outputFeet"></span></p>

<script>
function LengthConverter(valNum) { document.getElementById("outputFeet").innerHTML=(valNum*0.0328084).toFixed(2);
}
</script>