Rounding is certainly the behavior that most people would expect, but I wouldn't say it's the correct way. Truncation is perfectly valid and correct, even if it's less used than rounding. The IEEE 754 floating point standard, which is what most systems conform to, specifies 5 rounding methods, including the truncation that the OP was interested in. Whether the OP has a fully conforming implementation and how s/he will set the rounding method, I can't say.
Try trunc() with some multiplication/division. It is also in math.h and avoids the problems you will encounter with floor and negative arguments.