Java int comparing, 无法找出问题所在

Java int comparing, cannot figure out what is wrong

我是Java的新手,但我似乎无法理解为什么这段代码总是打印66!代码

for (int x = 0; x < columns; ++x) {

        for (int y = 0; y < rows; ++y) {

            Cell cell = getCell(x, y);

            int gridX = (int)cell.getXFromGridX();
            int gridY = (int)cell.getYFromGridY();

            if (((int)cell.getX()) == gridX && ((int)cell.getGridY()) == gridY) {

                continue;
            }

            ++count;
            log("CELL ANIMATING", (int)cell.getX() + "   " + gridX + "   :::   " + (int)cell.getY() + "   " + gridY);

基本上,for 循环遍历 66 个项目,如果它们的 gridX == X 和它们的 gridY == Y 那么计数不应该增加,也不应该向控制台输出任何内容。

但是我得到了输出,(只是一个选择)

细胞动画:300 300 ::: 480 400

细胞动画:300 300 ::: 1000 480

细胞动画:360 360 ::: 80 80

细胞动画:360 360 ::: 160 160

细胞动画:360 360 ::: 240 240

输出清楚地表明在某些情况下 gridX == X 和 gridY == Y。

为什么会这样,我该如何解决?

谢谢。

编辑

上面使用的单元格方法都是return浮动的。

在您正在检查的 if 条件下:

cell.getGridY()

在您正在检查的日志打印中:

(int)cell.getY()

这些调用可能 return 不同的值。

将 if 语句中的 cell.getGridY() 更改为 cell.getY()

        if (((int)cell.getX()) == gridX && ((int)cell.getGridY()) == gridY) {