Javascript Concat Number as string rather than add them up – Javascript 當把數字加上時卻把數字連在一起

今天在公司其中一Project上使用Javascript來計算時出現了一個問題
測試的同事問..為什麼數是會多了一個 0
像是計算時有些問題..
叫我去看看..
我看了自己的程式碼好幾次..
最後要慢慢一步一步來Debug才找到出現問題的地方

問題頁來出現在Javascript 處理數字上
E.G.

var i = $("#txt_Input1").val(); //100
var j = $("#txt_Input2").val(); //0
alert(i+j);

結果卻變成了 1000

問題是因為當 javascript 讀取TextBox的資料的時候
當了他們是文字.. 而Javascript上的”+” 可以代表是 Concat 字串..
所以便把 0 加上了100 上變成了1000 了

解決方法:
我們可以使用 parseInt 或 parseFloat 來把字轉成數值
之後便可以正常地把 100 加上0 變成100 了

E.G.

var i = $("#txt_Input1").val(); //100
var j = $("#txt_Input2").val(); //0
alert(parseFloat(i)+parseFloat(j));

Hope you find it useful

Leave a Reply