将输入用作结果框时,是否有办法限制输入中的小数位数?

问题描述

@H_502_0@我正在制作一个简单的html,其中我根据不同的输入进行计算,并使用纯js将结果显示在其他输入中。

@H_502_0@在下面的示例中,我将a / b输入除以c并返回结果,假设您输入633/33,它将返回这样的数字:19.181818181818183

@H_502_0@有没有办法使外观看起来像19.18?

@H_502_0@将maxlength属性用于结果输入将不起作用,因为它会限制您可以键入的字符数,而不是可以发送给的字符数。

<input type="text" id="input1"  style="width: 100px " onkeyup='divide_numbers()'/> 
<label> / </label> 
<input type="text" id="input2"  style="width: 100px " onkeyup='divide_numbers()'/>
 <label> = </label> 
<input type="text" id="result"  style="width: 100px "/>
<script>
function divide_numbers() {
var first_number = parseFloat(document.getElementById("input1").value) ;
var second_number = parseFloat(document.getElementById("input2").value) ;
document.getElementById("result").value=first_number/second_number ;
}
</script>

解决方法

您可以使用+number.toFixed(2),它会首先创建一个小数点后两位数字的字符串,然后将其强制转换回数字,从而删除不必要的十进制数字。

function add_numbers() {
  var first_number = parseFloat(document.getElementById("input1").value) ;
  var second_number = parseFloat(document.getElementById("input2").value) ;
  document.getElementById("result").value = +(first_number/second_number).toFixed(2);
}
<input type="text" id="input1"  style="width: 100px " onkeyup='add_numbers()'/> 
<label> / </label> 
<input type="text" id="input2"  style="width: 100px " onkeyup='add_numbers()'/>
 <label> = </label> 
<input type="text" id="result"  style="width: 100px "/>