y = self._group_y
             if parent_transform.transpose_xy:
                 x, y = y, x
-            self._absolute_transform.x = parent_transform.x + parent_transform.dx * x
-            self._absolute_transform.y = parent_transform.y + parent_transform.dy * y
+            self._absolute_transform.x = int(
+                parent_transform.x + parent_transform.dx * x
+            )
+            self._absolute_transform.y = int(
+                parent_transform.y + parent_transform.dy * y
+            )
             self._absolute_transform.dx = parent_transform.dx * self._scale
             self._absolute_transform.dy = parent_transform.dy * self._scale
             self._absolute_transform.transpose_xy = parent_transform.transpose_xy
         if not isinstance(value, int) or value < 1:
             raise ValueError("Scale must be >= 1")
         if self._scale != value:
-            parent_scale = self._absolute_transform.scale / self._scale
+            parent_scale = self._absolute_transform.scale // self._scale
             self._absolute_transform.dx = (
-                self._absolute_transform.dx / self._scale * value
+                self._absolute_transform.dx // self._scale * value
             )
             self._absolute_transform.dy = (
-                self._absolute_transform.dy / self._scale * value
+                self._absolute_transform.dy // self._scale * value
             )
             self._absolute_transform.scale = parent_scale * value
 
             raise ValueError("x must be an integer")
         if self._group_x != value:
             if self._absolute_transform.transpose_xy:
-                dy_value = self._absolute_transform.dy / self._scale
+                dy_value = self._absolute_transform.dy // self._scale
                 self._absolute_transform.y += dy_value * (value - self._group_x)
             else:
-                dx_value = self._absolute_transform.dx / self._scale
+                dx_value = self._absolute_transform.dx // self._scale
                 self._absolute_transform.x += dx_value * (value - self._group_x)
             self._group_x = value
             self._update_child_transforms()
             raise ValueError("y must be an integer")
         if self._group_y != value:
             if self._absolute_transform.transpose_xy:
-                dx_value = self._absolute_transform.dx / self._scale
+                dx_value = self._absolute_transform.dx // self._scale
                 self._absolute_transform.x += dx_value * (value - self._group_y)
             else:
-                dy_value = self._absolute_transform.dy / self._scale
+                dy_value = self._absolute_transform.dy // self._scale
                 self._absolute_transform.y += dy_value * (value - self._group_y)
             self._group_y = value
             self._update_child_transforms()