Fixed, this was a problem with weakly typed languages such as perl,sometime it doesn't know what SQL_TYPE to send, so it sendsSQL_VARCHAR.
The solution is to use bind_param(<placeholder_number>,<value>,DBI::SQL_FLOAT);
Tom