[問題] 減法正確~加法卻失敗?

看板Web_Design作者 (pl132)時間13年前 (2012/06/22 19:54), 編輯推噓5(5011)
留言16則, 7人參與, 最新討論串1/1
抱歉~小弟又來獻醜了〒△〒...... 以下是小弟2個方程式~~其中下方這個失去金錢之後會正確回傳答案~~ 但是第二個卻只會回傳錯誤的值~例如:正確應該是2000+3000="5000" 最後會傳5000出來才對但是他卻是傳出20003000這樣錯誤的值......... 請問為何變數會變成字串= = 兩個方程式應該邏輯都是對的啊... 沒道理減法做得出來~加法卻失敗吧.........好像也不是括號問題ORZ ================================= function lose(losemoney)//失去金錢~做為命運用 { if(((i-1)%2)!=0) //做確認判斷是誰的錢失去 { var moneyA1=moneyA.value; moneyA.value=moneyA1-losemoney; } else { var moneyB1=moneyB.value; moneyB.value=moneyB1-losemoney; } } function win(winmoney)//得到金錢~做為命運用 { if((i%2)==0) //做確認判斷是誰的錢增加 { var moneyA1=moneyA.value; moneyA.value=moneyA1+winmoney; } else { var moneyB1=moneyB.value; moneyB.value=(moneyB1+winmoney); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.45.47.84

06/22 19:59, , 1F
+號在javascript中可以當字串相連,先parse成int
06/22 19:59, 1F

06/22 20:04, , 2F
parseInt()這個函示嗎~~兩個變數都要嗎?
06/22 20:04, 2F

06/22 20:28, , 3F
天啊~太感謝了!!!成功了~繼續開發下個函示~~
06/22 20:28, 3F

06/22 20:29, , 4F
再做加法演算時~請記得先用parseInt()做轉換~~以免失敗
06/22 20:29, 4F

06/22 20:29, , 5F
提供給有需要的板友做參考
06/22 20:29, 5F
附上正確版本~~ function win(winmoney)//得到金錢~做為命運用 { winmoney=parseInt(winmoney,10); if(((i-1)%2)!=0) //做確認判斷是誰的錢增加 { var moneyA1=moneyA.value; moneyA1=parseInt(moneyA1,10); moneyA.value=moneyA1+winmoney; } else { var moneyB1=moneyB.value; moneyB1=parseInt(moneyB1,10); moneyB.value=(moneyB1+winmoney); } } ※ 編輯: pl132 來自: 114.45.47.84 (06/22 20:35)

06/22 20:49, , 6F
如果確定是數字 直接寫money*1也可以
06/22 20:49, 6F

06/22 21:16, , 7F
還有money-0、+money (unary positive),不知道哪個比較快
06/22 21:16, 7F

06/22 22:07, , 8F
我會建議還是寫成parseInt 因為你之後使用通常都是把它當
06/22 22:07, 8F

06/22 22:08, , 9F
作數字來作運算 寫成parseInt直接將他轉成數字就不用
06/22 22:08, 9F

06/22 22:08, , 10F
一直使用*1拉 -0之類的trick 況且也可以養成一個好習慣
06/22 22:08, 10F

06/22 22:08, , 11F
就是重視變數的型態...js屬於弱型態語言
06/22 22:08, 11F

06/22 22:08, , 12F
很多人寫的時候會不去注意變數的型態
06/22 22:08, 12F

06/22 23:10, , 13F
轉換完是先存到變數的話,用 *1 也是做一次不用一直用啊
06/22 23:10, 13F

06/22 23:13, , 14F
ParseInt第二個參數不要避免
06/22 23:13, 14F

06/22 23:13, , 15F
也是可以 總之我就是那個意思 先存到變數 確定變數型態
06/22 23:13, 15F

06/23 12:24, , 16F
JS變數加減我都只敢用-號做 A=X-Y*-1
06/23 12:24, 16F
文章代碼(AID): #1Fv5pjH6 (Web_Design)