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.