When you drag a model onto the surface it does a pick to see if something is hit, and if so it drops the model in the picked position.
If we want the position to be rounded to the grid, then it is probably necessary to take into consideration the picked normal.
For example, if that floor does not line up to the grid size vertically, you almost certainly would still want to use the Y component of the pick as the position, without any rounding.