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

Cla*_*diu 11 html floating-point html5 scientific-notation html-input

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

在此输入图像描述

如果我输入5,然后按箭头键,则会抑制科学记数法:

在此输入图像描述

有没有办法让浏览器显示1e-80.000000001

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

<input type="number" step="0.00000001">
Run Code Online (Sandbox Code Playgroud)

Sta*_*eta 6

<input oninput='precise(this)' type="number" step="0.00000001">

<script>
  function precise(elem) {
    elem.value = Number(elem.value).toFixed(8);
  }
</script>
Run Code Online (Sandbox Code Playgroud)

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


rau*_*fer 5

这是基于 StardustGogeta 的答案的变体:

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