What is the smallest number that your computer recognizes as being bigger than zero? This varies from machine to machine. Run this code and its double precision analogue to see what single and double precision zero means.