BUG: fix wrong output shape in ndimage.zoom()

ndimage.zoom() may calculate the output shape incorrectly
due to round-off error in some occasions. Rounding to
nearest will be a better method for calculating the the
output shape compared to truncation.