At a guess that is a bug at the C level in
DBD::Informix.
One reason why the quotes could make a difference is that
you are forcing the internal representation of the scalar
into string form, and so the driver might wind up using a
different conversion function on the number.