2015-06-30 37 views
0

我想要做數學,我得到的值如200052,即如果我加2000 + 52,它應該是2052.我做錯了什麼或缺少什麼?Javascript數學顯示錯誤的數字

//get value of amount eneterd 
amount = document.getElementById("amount").value; 
//apply percentage 
if(rateExcel.checked = true){ 
    total= parseINT((amount/100) * 5); 
    total= total + parseINT(amount); 
//still i get the same, like 20052 instead of 252. 
}; 

編輯:輸入是整數,而不是字符串!我看到很多人試圖成爲忍者講述使用parseINT(),但我試過了,它不起作用。

+0

使用數量(金額) – AkshayJ

+0

量得到一個字符串值,所以如果一個字符串在你的邏輯,這使得整個事情的字符串追加,使用parseInt函數(量)或數量(金額) – Newinjava

+0

順便說一句,'if(rateExcel.checked = true)'行不符合你的想法。這是檢查一個賦值操作的結果(單個等號),並且在這種情況下將始終是真實的。 – serg10

回答

1

您通過強制amount變量,因爲它可能作爲一個字符串:

接受成爲一個int解決這個問題
total = total + parseInt(amount); 
+3

不使用'parseInt'沒有基數 – Quentin

0

你的量是一個字符串,所以你需要使用你的量轉換成數字

total= total + Number(amount); 
+0

如果'amount'不是有效的數字,請小心'NaN'值。 – Alnitak

+1

@Alnitak然後總數將是一個NaN,糾正最終用戶不是什麼問 – bugwheels94

0
//get value of amount eneterd 
amount = document.getElementById("amount").value; 
//apply percentage 
if(rateExcel.checked == true){ 
    total= (parseInt(amount,10)/100) * 5; 
    total= total + parseInt(amount,10); 
}; 
+3

不使用'parseInt'沒有基數 – Quentin

+1

@Quentin什麼是基數? – Nofel

+1

@Nofel - 數字的基數。如果你沒有指定它,那麼JS將會應用一些規則,並且你可能會發現你的數字被視爲八進制或十六進制而不是十進制。 – Quentin