碰到个奇怪的问题,大家能看看是怎么回事吗

一个泡泡龙游戏,我想判断泡泡撞到了天花板,
if ((float) bodyA->GetPosition().y == visibleSize.height / RATIO
|| (float) bodyB->GetPosition().y == visibleSize.height / RATIO) { //撞到天花板
CCLOG(“1”);
} else {
CCLOG(“2”);
}

CCLog("%f", bodyA->GetPosition().y);
CCLog("%f", bodyB->GetPosition().y);
CCLog("%f", visibleSize.height / RATIO);

01-15 11:27:14.112: D/cocos2d-x debug info(4411): 6.000000
01-15 11:27:14.112: D/cocos2d-x debug info(4411): 5.651184
01-15 11:27:14.112: D/cocos2d-x debug info(4411): 6.000000
01-15 11:27:14.112: D/cocos2d-x debug info(4411): 2

但是有时候会输出1,有时候会输出2,而且输出2的时候,明明都是6.0,新手啊,谁能解答一下吗