2013-02-14 76 views
0

所以這裏是我整理在一起的一個傻瓜實驗,基本上試圖用一個修飾符生成一個D風格的攻擊輪。我想添加數字,但JavaScript不斷添加數字作爲字符串。我不知道如何來完成基本的數學.....下面是我的代碼 -如何在結果中將一個隨機數字添加到存儲變量中作爲數字,而不是將2個字符串添加在一起?

 function battle() 
    { 
     var CS = document.battleForm.playerCS.value; 
     var D20 = Math.ceil(Math.round(Math.random() * 20)) 
     var attackRoll = CS + D20 

     if (isNaN(CS)) 
     { 
      alert ("please provide your Combat Score!") 
      return 
     } 
     if (CS != '') 
     { 
      document.battleForm.enemyCS.value = attackRoll 
     } 
    } 
+0

'CS'是一個字符串;使用'parseFloat'或者一元加號 – 2013-02-14 20:47:28

回答

2

爲了確保兩個數字加在一起,嘗試:

var num3 = +num1 + (+num2); 

可能優於使用parseIntparseFloat的原因有兩個:

  • +將轉換成任何號碼(這意味着,你不需要一個不同的方法爲整數和浮點數)
  • +將失敗,如果任何一個val你不可兌換。 parseIntparseFloat忽略變量中的任何結尾文本。例如,parseInt("10px", 10)結果爲10,而(+"10px")結果爲NaN

這取決於你想要使用什麼。

1
var CS = parseInt(document.battleForm.playerCS.value, 10); // or parseFloat if you expect float number 

任何形式的文本的值是一個字符串,所以你需要將其轉換爲數字。

相關問題