2013-08-07 83 views
0

請考慮下面的JavaScript代碼中的計算。與示例值:錯誤的JavaScript代碼計算

  • investmentfix = 200.00
  • investmentvar = 123.12
  • nrofparts = 5.00

...控制檯顯示奇怪的結果值0200.00615.6。我不明白。我注意到這個值爲200.00和615.6,後者是investmentvar * nrofparts的結果。但是我希望(和目標獲取)的結果815.6(200 +(123.12 * 5.00)

錯在這是不是涉及到一種格式問題

javascript代碼:??

var result =0; 

result += (investmentfix + (investmentvar * nrofparts)); 

console.log(result); 
+4

是否有一些變量是字符串?它可能試圖連接而不是添加它們。 – 2013-08-07 15:25:30

+0

我們可以看到更多的代碼嗎? – imulsion

+0

^^如果它們直接來自用戶輸入,它們將是字符串。 – 2013-08-07 15:26:00

回答

1

嘗試以下操作:

result = parseFloat(0,10); 
result+=parseFloat(investmendfix,10)+parseFloat(investmentvar*nrofparts,10); 
console.log(result); 

這確保了JavaScript引擎在數字,而不是字符串解析變量

parseFloat()語法:parseFloat(myNumber,base);

+1

execllent,它的工作原理; thnx所有你的評論(!)我剛從表單字段獲取值時,首先只使用了parseFloat。但是,Jeff的解決方案似乎表明,仍然需要在計算上應用parseFloat。 – Joppo

+0

如果變量不包含字符串,則所有內容都將按預期工作而不需要'parseFloat()'。 @ user2543182你可以使用'typeof(myVariable)== number'來找到哪個變量是一個字符串。如果它返回true,則該變量是一個數字,否則它保存另一種類型的值:'string','Object','Array'等。查找哪個變量不是字符串可以避免使用'parseFloat )'三次。 –