It has to do with how the computer represents floating point numbers. The computer is representing the data as a summation of various powers of 2. Since .6 cannot be represented as a summation of powers of 2, it is only a close approximation. When you truncate the value using the "%d" format specification, it gives the results you show (as illustrated by others on this thread).
The reason that perl6 (mentioned elsewhere) gets it right (IIRC), is because if it cannot exactly represent the value, it will store it as a ratio (in this case, 756/10) and use integer math (or at least exact precision math) on the values. Since I have not started to learn Perl6, this is from memory. Use at your own risk.
See also: what every programmer should know about floating point. (update: choroba beat me to it)