2011-03-22 148 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语句末尾的分号。