有没有办法抑制<input type =“number”/>的科学记数法?

时间:2015-10-14 18:29:03

标签: html html5 floating-point html-input scientific-notation

我希望使用<input>元素输入最多八个小数点的数字。但是,如果我有<input type="number" step="0.00000001">并使用输入元素上的向上/向下箭头(在Chrome上;这里是jsfiddle),那么我会得到小数字的科学记数法:< / p>

enter image description here

如果我输入,比方说5,然后点击箭头键,则科学记数法被抑制:

enter image description here

有没有办法让浏览器将1e-8显示为0.000000001

此外,这里是否有任何危险,如果数量足够少,我会遇到浮点舍入错误?

&#13;
&#13;
<input type="number" step="0.00000001">
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:6)

&#13;
&#13;
<input oninput='precise(this)' type="number" step="0.00000001">

<script>
  function precise(elem) {
    elem.value = Number(elem.value).toFixed(8);
  }
</script>
&#13;
&#13;
&#13;

您可以根据需要将toFixed参数更改为所需的小数位数。我希望这有帮助!

答案 1 :(得分:2)

以下是基于StardustGogeta&#39; s answer的变体:

<input oninput="this.value=Number(this.value).toFixed(this.step.split('.')[1].length)" type=number step="0.00000001">