2015-10-14 2449 views
6

我想用一个<input>元素输入最多带8个小数点的数字。但是,如果我有一个<input type="number" step="0.00000001">和使用输入元件上的上/下箭头(Chrome上;这里的jsfiddle),然后我得到科学记数法为小数字:有没有办法为<input type =“number”>禁止科学记数法?

enter image description here

如果我输入,说,5,然后打箭头键,然后科学记数法被抑制:

enter image description here

有没有什么办法让显示1e-8作为0.000000001浏览器?

另外,在这里有任何危险,有足够小的数字,我会遇到浮点舍入错误?

<input type="number" step="0.00000001">

回答

4

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

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

可以根据需要将toFixed参数更改为十进制数字的期望数量。我希望这有帮助!

+0

可以用'oninput =精确(这)',然后做'函数精确致发光(EL){el.value传递特定'input'元件= Number(el.value).toFixed(8); }' – AndyPerlitch

+0

@AndyPerlitch非常好的一点,我已经修复了答案。 – StardustGogeta

2

这里是基于StardustGogeta的answer的变化:

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