2016-08-01 16 views
1

Ich habe ein Javascript, um einige Eingaben automatisch zu füllen, ohne es mit meinem Code rundet es funktioniert gut es ändert und AutoFill die Eingaben, aber versuchen, Math.round hinzuzufügen oder Runde rundet die Dezimalzahlen aber nicht Änderung Autofill nicht, wenn einige addEventListener Änderungen wie esJavascript parseInt parseFloat und Rundung Dezimalzahlen

tun müssen

Code Arbeiten

taxes.value = parseInt(parseFloat(totaltopay.value) * (1.00/1.19)); 

einige Code Hinzufügen der Dezimalstellen runden es Autofill nicht die Eingänge

taxes.value = parseInt(parseFloat(Math.round(totaltopay.value) * (1.00/1.19))); 

Irgendeine Möglichkeit, dieses Ergebnis zu runden und es zum Laufen zu bringen?

Es die Folge tun müssen:

taxes = 23123.764345645 rund und zeigen nur 23124 ohne Punkte ohne

Komma

EDIT

Die Eingangsgröße ändert sich die Gesamt mit Eingangsgröße * Eingang Verkaufspreis zu zahlen und das gibt einen Gesamtpreis zu zahlen, diese Gesamttopeingabe nehmen wir den Betrag ein, bekommen die Steuern, es funktioniert ohne Rundung, aber versuchend, es den addEventListener zu beenden, aufzuhören zu arbeiten ... Wie Sie die Steuern verstehen können, sind autofilles auch, wenn Verkaufspreis ändernd oder Menge, weil das zu taltopay ändern und so die Steuern

+0

Was Ihre Eingabe ist und was erwarten Sie als Ergebnis? – Sergio

+0

Sie brauchen nur 'parseInt'. –

+0

'Math.round ((totaltopay.value) * (1.00/1.19));' –

Antwort

0

Sie müssen nur Math.round() verwenden, die die Zahl rundet und einen ganzzahligen Wert zurückgibt. Bei der Anwendung von * (Multiplikation) oder / (Division) werden die Werte automatisch nach Number analysiert, so dass keine hartcodierten Methoden zum Parsen benötigt werden.

taxes.value = Math.round(totaltopay.value * 1.00/1.19); 
+0

ohne parserInt und ohne parseFloat?Ich werde es versuchen – Nokelekele

+0

@Nokelekele im Falle der Zugabe müssen Sie sich kümmern .... seit '+' steht auch für Verkettung –

+1

Arbeiten nur so perfekt, vielen Dank – Nokelekele

3

Also, um Dinge im Auge zu behalten:

  • parseInt() ganze Zahlen erzeugt. Sie geben ihm eine Zeichenfolge oder eine Zahl und Sie erhalten eine ohne Dezimalzahlen. Hinweis: parseInt hat eine Radix, haben Sie wahrscheinlich die radix 10 verwenden möchten: parseInt(yourString, 10);
  • parseFloat() nimmt einen String und gibt eine Zahl, mit dezimal Fällen
  • Math.round() nimmt eine Nummer (*) und gibt eine ganze Zahl, auf die gerundet nächste ganze Zahl
  • Number() nimmt einen String (oder Nummer) und wandelt es in eine Reihe, also

    dezimal Fälle

halten, was Sie brauchen, ist:

taxes.value = Math.round(Number(totaltopay.value) * 1.00/1.19); 

(*) - Math.round mit Strings arbeitet, aber MDN's docs say: give it a number