Snap to Grid unexpected result I was working with the Snap to Grid option and due to the unexpected result obtained I would like to show you the case that can be summarized as follows:


I take a Cube (2x2x2).
Set the Z dimension in 0.
I set the Cube in Edit Mode and selected a vertex that was move to the right side.
I made “Snap to Grid” and the result was the vertex goes to the Object Origin and not to the nearest grid intersection.


In the following link there is a PDF with pictures that illustrate the case:

https://drive.google.com/open?id=0B1emiHzIWh8eMzZNTFBHWHc5Y0U

Cordially,
Ricardo Amaya R.
When You set Z dimension to 0, it makes z-scale automatically to 0. It means that all Z - coordinates in model will multiply by 0:

 global coordinates = local coordinates * scale


When you select “Snap to Grid” it snaps globaly, and global coordinates needs to convert to local.  That means if you have scale 0.5 local coordinates must by twice bigger. So, the formula is: 

local coordinates = global coordinates / scale


So, if you set scale to 0 the formula will be:

local coordinates = global coordinates / 0


But division by zero is mathematically impossible. So it will raze an exception that reset coordinates.

See also: Why is it important to apply transformation to an objects data?