I think Phoebe was right on target regarding the intent of the exercise (not to cover extreme conditions), and her approaches. The test function can be simply: For extra credit, Marvin might print some "try again" message if any parameter is too big/small.
I prefer the (int) cast over Math.floor() mentioned previously for two reasons: 1) A floating point number is stores the integer part separately from the fractional part, so the casting is a trivial operation for the JVM; and 2) any function call is going to run slower in comparison, so it's always(?) best to avoid functions/methods when you have native alternatives. Also, the sign is preserved in the cast, so that's not a concern that needs to be tested separately.
Regarding Marvin's attempt to convert the numbers to strings, that would have worked fine (although less efficiently), but he assumed that the strings would always contain a decimal point. He just needed to code for the possibility that indexOf(".") would find nothing, returning -1. He may have been unaware that passing the parameter 0.0 is still just zero, so it will convert to the string "0" with no decimal point to be found. And 1.0 is just "1", etc.