I have the same problem presented here when migrating to Oracle10. I get "Type mismatch <..> expecting Float, actual Integer" error message.
But Oracle reported at Note:241355.1 on metalink.oracle.com a similar problem.
I am referring to this following issue (taken from metalink):
"Bug 2235818 was backported to 9.2.0.3 and corrected the way in which columns that are of NUMBER type, but have no explicit scale specified, internally represent the scale (we return -127 instead of 0 now).
Unfortunately, lots of legacy code INCORRECTLY used a test on the scale and if it was -127 they assumed that the datatype was a FLOAT. The legacy code should have checked for a non-zero precision and a scale of -127 to detect a genuine FLOAT type.
As 9.2.0.3 is a patch set release it has been decided to offer event 10499 as a method to revert to the OLD behaviour. The OLD behaviour is enabled by using the event with any non-zero level.
N.B. The event is NOT available in 10i and so client applications that require the use of the event will need to be rewritten before they are moved to 10i."