【问题标题】:Is there a way to limit the number of decimal characters in an input when its used as a result box?当它用作结果框时,有没有办法限制输入中的十进制字符数?
【发布时间】:2020-09-24 20:40:55
【问题描述】:

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

在下面的示例中,我将 a / b 输入除以 c 并返回结果,假设你输入 633 / 33 它返回一个如下数字:19.181818181818183

有没有办法让它看起来像 19.18 ?

对结果输入使用 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>

【问题讨论】:

  • document.getElementById("result").value=+(first_number/second_number).toFixed(2)
  • (number).toFixed(2) 将返回一个小数点后正好有 2 位数字的字符串(即使它是一个整数)。

标签: javascript input character decimal limit


【解决方案1】:

您可以使用+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 "/>

【讨论】:

    猜你喜欢
    • 2013-11-19
    • 1970-01-01
    • 2016-11-12
    • 2021-03-23
    • 2018-01-19
    • 2022-01-09
    • 1970-01-01
    • 2013-02-20
    • 1970-01-01
    相关资源
    最近更新 更多