2013-05-30 68 views
0

當我做如下操作:簡單arithmatic錯誤的JavaScript

var score = (0.229*5)/
      + (0.237*5)/
      + (0.265*5)/
      + (0.214*5)/
      + (0.055*5); 

分數的計算結果爲2.478305190973909。但是,如果在一條線上執行相同的操作。

var score = (0.229*5) + (0.237*5)+ (0.265*5) + (0.214*5) + (0.055*5); 

按照我的打算評分爲5.000000000000001

什麼給?爲什麼我不能將操作分成多行?

編輯:

的jsfiddle是給我做的時候會出現錯誤:

var score = (0.229*5) 
      + (0.237*5) 
      + (0.265*5) 
      + (0.214*5) 
      + (0.055*5); 

http://jsfiddle.net/MSamman/Jdrbq/

然而,這是通過做

var score = (0.229*5) + 
      (0.237*5) + 
      (0.265*5) + 
      (0.214*5) + 
      (0.055*5); 

顯然它沒有固定的像開始與+一行。

+2

爲什麼'/'s?你想分裂嗎? –

+0

即時通訊嘗試繼續下一行。 – moesef

+0

我並不感到驚訝,他們是不同的,一個師不對另一個! – dandavis

回答

1

消除/操作(它做除法)

var score = (0.229*5) 
      + (0.237*5) 
      + (0.265*5) 
      + (0.214*5) 
      + (0.055*5); 

使用//開始單行註釋。

;終止聲明,雖然JavaScript解釋器在某些時候會暗示分號。有關語句終止的更多信息,請參閱http://inimino.org/~inimino/blog/javascript_semicolons

1

試着寫它作爲

var score = (0.229*5) 
      + (0.237*5) 
      + (0.265*5) 
      + (0.214*5) 
      + (0.055*5); 

這似乎爲我

+1

最好把「+」放在行尾,而不是在開頭,尤其是如果你打開下一行的時候... – dandavis

+0

我明白了。我想我的問題是我使用JSFiddle作爲快速語法檢查器,它不喜歡這樣。但是,如果我將+放在行尾而不是乞求,JSFiddle不會產生錯誤。 – moesef

0

您可以分割的工作,只是不要在線路末端使用/。 Javascript評估一個語句之間;字符,無論空白字符。