0

我有以下代码:

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

<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>

在大多数输入中,返回输出具有正确的格式,但在某些给定尺寸(例如 155 厘米)上,它返回几个小数:

155 Cm=4.6499999999999995 Ft
4

2 回答 2

2

用 包裹前面的操作()。它首先评估对function号码的调用,所以首先是0.0328084.toFixed(2)this 的结果valNum

(valNum*0.0328084).toFixed(2)

例子

function LengthConverter(valNum) {
   document.getElementById("outputFeet").innerHTML = (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>

于 2017-09-01T10:30:05.667 回答
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>

于 2017-09-01T10:44:48.070 回答