2016-08-01 59 views
1

我有一個JavaScript來自動填充一些輸入,沒有與我的代碼四捨五入它工作正常它改變和自動填充輸入,但試圖添加Math.round或圓它繞小數,但不變化不會自動填充,如果喜歡它的一些變化的addEventListener必須做Javascript parseInt parseFloat和舍入小數

工作代碼

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

添加一些代碼,以四捨五入的小數它不會自動填充的投入

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

任何方式來取得這個結果,並使其工作?

必須做到如下:

taxes = 23123.764345645圓形,只向23124不點不帶逗號

編輯

輸入量總與輸入量*輸入銷售價格,並支付改變這給總的價格支付,這totaltopay輸入我們採取的金額和稅收,它的工作原理沒有四捨五入,但試圖繞它addEventListener停止工作......你也許可以瞭解稅收也是autofilles當改變銷售價格或數量因爲到taltopay更改等納稅

+0

什麼是你輸入你能指望什麼作爲的結果? – Sergio

+0

你真的需要'parseInt'。 –

+0

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

回答

0

您只需要使用Math.round()哪些四捨五入的數字並返回一個整數值。在應用*(乘法)或/(除法)時,這些值自動被解析爲數字,因此不需要硬編碼方法來解析它們。

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

without parserInt and without parseFloat?我會試一試 – Nokelekele

+0

@Nokelekele如果你還需要關心....因爲'+'也代表連接 –

+1

工作很完美,非常感謝 – Nokelekele

3

所以,事情要記住:

  • parseInt()創建整數。你給它一個字符串或一個數字,你得到一個數字沒有十進制的情況。注:parseInt有一個基數,您可能需要使用基數10:parseInt(yourString, 10);
  • parseFloat()需要一個字符串,並返回一個數字,用十進制案件
  • Math.round()需要數(*),並返回一個整數,四捨五入到最接近的整數
  • Number()需要一個字符串(或數量),並將其轉換成一個數字,小數點保留的情況下

所以,你需要的是:

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

(*) - Math.round適用於字符串,但MDN's docs say: give it a number