2010-10-19 54 views
1

這兩個數學問題不應該給出相同的答案嗎?括號/括號首先完成,對嗎?所以它應該將它們全部加起來,然後除以2,然後減去10.下面的第二個答案是給我正確的值,我需要的,另一個給出的值是一個很長的路要走。Jquery/Javascript Math:爲什麼這兩個1行數學問題沒有給出相同的答案?

var pleft = $(this).offset().left + ($(this).width() /2) - ($("#question-wrapper").width()/2) - 10; 

    var pleft = (($(this).offset().left + $(this).width() + $("#question-wrapper").width())/2) - 10; 

回答

5
var x = $(this).offset().left; 
var y = $(this).width(); 
var z = $("#question-wrapper"); 

var pleft = x + (y/2) - (z/2) - 10 

var pleft = ((x + y + z)/2) - 10 

希望這有助於消除差異。

0

在第一次,你永遠不會分開第一部分2.這就是爲什麼它關閉。

var pleft = ($(this).offset().left/2) + ($(this).width() /2) - ($("#question-wrapper").width()/2) - 10; 

支架/括號首先完成的,對不對?

是的,但它們在您的示例中不完全等效。


你的代碼做了什麼:

  1. A + B/2 - C/2,然後減去10
  2. (A + B - C)/ 2,然後減去10
2

我分解公式,所以你可以看到:

var pleft = $(this).offset().left <------------------- not divided 
+ ($(this).width() /2) 
- ($("#question-wrapper").width()/2) 
- 10; 


var pleft = (
(
    $(this).offset().left <--------------------- divided 
    + $(this).width() 
    + $("#question-wrapper").width() 
) 
/2) 
- 10; 

在第一種情況下,$(本).offset()左不受2這是第二種情況,而分,這就是爲什麼他們不會給出相同的結果

相關問題