Read the manual section on CInt() - this gives a reasonable explanation of what's going on. I'll highlight the most important points:
  • Values are rounded to the nearest even number when the fractional part is exactly 0.5
  • If you are after the integer part rather than the nearest integer, use Int() which does not round the value but simply drops the fractional part.