简体   繁体   中英

Is there a way to suppress scientific notation for <input type=“number”>?

I'd like to input numbers with up to eight decimal points with an <input> element. However, if I have an <input type="number" step="0.00000001"> and use the up/down arrows on the input element (on Chrome; here's the jsfiddle ), then I get scientific notation for the small numbers:

在此输入图像描述

If I input, say, 5, and then hit the arrow key, then scientific notation is suppressed:

在此输入图像描述

Is there any way to get the browser to display the 1e-8 as 0.000000001 ?

Also, is there any danger here that with sufficiently small numbers, I'll hit floating point rounding errors?

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

 <input oninput='precise(this)' type="number" step="0.00000001"> <script> function precise(elem) { elem.value = Number(elem.value).toFixed(8); } </script> 

You can change the toFixed parameter to the desired number of decimal digits as needed. I hope this helps!

以下是基于StardustGogeta 答案的变体:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM