2015-10-14 6 views
6

Ich möchte Zahlen mit bis zu acht Dezimalstellen mit einem <input> Element eingeben. wenn ich jedoch ein <input type="number" step="0.00000001"> und die Auf-/Ab-Pfeile auf dem Eingabeelement verwenden (auf Chrome; hier ist die jsfiddle), dann habe ich die wissenschaftliche Schreibweise für die kleinen Zahlen erhalten:Gibt es eine Möglichkeit, die wissenschaftliche Notation für <input type = "number"> zu unterdrücken?

enter image description here

Wenn ich Eingang, sagen, 5, und dann auf die Pfeil-Taste drückt, dann wird die wissenschaftliche Notation unterdrückt:

enter image description here

gibt es eine Möglichkeit, den Browser zu bekommen die 1e-8 als 0.000000001 angezeigt werden?

Gibt es auch hier die Gefahr, dass ich mit ausreichend kleinen Zahlen Gleitkomma-Rundungsfehler erhalte?

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

Antwort

4

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

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

können Sie den toFixed Parameter auf die gewünschte Anzahl der Dezimalstellen nach Bedarf ändern. Ich hoffe das hilft! Hier

+0

können Sie das spezifische 'input' Element passieren mit' oninput = präzis (dieser) ', dann tun' Funktion präzise (el) {el.value = Zahl (el.value) .toFixed (8); } ' – AndyPerlitch

+0

@AndyPerlitch Sehr guter Punkt, ich habe die Antwort behoben. – StardustGogeta

2

ist eine Variation basierend auf StardustGogeta des answer:

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