2011-03-22 103 views
1

我有一個非常奇怪的錯誤,我無法弄清楚。浮點數比較不匹配

float distance = Utils.distance(this.spriteStartX, this.spriteStartY, this.getX(), this.getY()); 

Utils.log("D_Check: "+distance+" >= "+this.spriteDistance); 

if(distance >= this.spriteDistance); 
{ 
    Utils.log(distance+" is greater than "+this.spriteDistance); 
} 

在這段代碼中,我確定了我的精靈起源和它的當前位置之間的距離。 (爲了簡單起見,這是8.034246f)。 this.spriteDistance是7000.0f。

在調試器中我收到:

D_Check: 8.034246 >= 7000.0 
8.034246 is greater than 7000.0 

顯然東西是非常不對的。我錯過了一件非常簡單的事情嗎?

+0

spriteDistance的數據類型是什麼? – 2011-03-22 09:17:54

+0

spriteDistance是一個浮點數。 – Knossos 2011-03-22 09:20:56

回答

6

刪除if語句後面的分號。

if (distance >= this.spriteDistance) 
{ 
    Utils.log(distance+" is greater than "+this.spriteDistance); 
} 
+0

我盯着它整個該死的時間!謝謝 :) – Knossos 2011-03-22 09:30:26

5

刪除if語句末尾的分號。