For those of you prefering the use of CAST, the following 2-step cast will also work:
Code:
cast(cast(xxannual as decfloat) as double)
According to the conversion table (p.92 of the SQL Reference guide 1), the only two datatypes that CHAR and VARCHAR cannot be converted to are exactly DOUBLE and FLOAT.
Which explains the need to go through either DECIMAL (in case you know it's a fixed-decimal-point numeric value) or through DECFLOAT (which supports e.g. '1.1e2'), or using the function DOUBLE(...)