In casting from a float or double to an integral type, the value is always truncated (everything to the right of the decimal discarded). An explicit cast is always needed in these cases -- even if going from a 32-bit float to a 64-bit long.
"We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer sscce.org