2017-08-28 4 views
-1

Ich habe 3 Textfelder, man nimmt einen Wert, der andere berechnet 20% dieses Wertes und subtrahiert ihn vom Anfangswert. es funktioniert nicht genau.mein Javascript berechnet nicht genau

Hier ist mein Code.

function sum() { 
 
    var txtFirstNumberValue = document.getElementById('txt1').value; 
 
    var txtSecondNumberValue = document.getElementById('txt4').value; 
 
    var result = parseInt(txtFirstNumberValue) * 0.2; 
 
    var balance = parseInt(txtFirstNumberValue) - 
 
    parseInt(txtSecondNumberValue); 
 

 

 
    if (!isNaN(result)) { 
 

 
    document.getElementById('txt3').value = balance; 
 
    document.getElementById('txt4').value = result; 
 
    } 
 
}
<input type="text" id="txt1" onkeyup="sum();" /> 
 
<input type="text" id="txt3" /> 
 
<input type="text" id="txt4" />

+1

Was nicht funktioniert? Ich muss sagen, was das Problem ist. – epascarello

+0

Wahrscheinlich ein anderes Gleitkomma-Problem ... –

+0

Ist das Problem das 'NaN', das in der zweiten Eingabe erscheint, wenn Sie die erste eingeben? –

Antwort

0

Das Problem ist, dass Sie das berechnete Ergebnis zu erhalten versuchen, bevor Sie es berechnen

document.getElementById('txt4').value 

immer einen Schritt zurück ist, was da Sie nicht arbeiten wollen es zu.

Was Sie wirklich tun möchten, ist die Waage mit der result zu berechnen:

var balance = parseFloat(txtFirstNumberValue) - result; 

Bitte beachte, dass ich parseInt mit parseFloat ersetzt habe. Auf diese Weise unterstützt der Code Floating-Zahlen als Eingabe.

function sum() { 
 
    var txtFirstNumberValue = document.getElementById('txt1').value; 
 
    var result = parseFloat(txtFirstNumberValue) * 0.2; 
 
    var balance = parseFloat(txtFirstNumberValue) - result; 
 

 

 
    if (!isNaN(result)) { 
 

 
    document.getElementById('txt3').value = balance; 
 
    document.getElementById('txt4').value = result; 
 
    } 
 
}
<input type="text" id="txt1" onkeyup="sum();" /> 
 
<input type="text" id="txt3" /> 
 
<input type="text" id="txt4" />

+0

Danke, mein Javascript ist noch nicht dieser Code. – eugbana

Verwandte Themen