Convert float to decimal in Informix
-
28-09-2019 - |
Question
I have a table with a column of type decimal. There is a ESQL/C structure that represents the table. It has a member of type decimal. I also have a normal C structure for equivalent for the same table. The type of the above mentioned field is a float.
Since we use memcpy to copy data to and from ESQL/C structure to C structure, there is an issue with decimal to float conversion. When I searched the Informix ESQL/C Programmer's manual, I couldn't find any function that can do this. Google search led me to the deccvflt() function. This function converts from a float to a decimal type.
Though I couldn't find this function listed in the manual, I see the declarations in decimal.h. Are these functions still recommended to be used?
Alternatively, I was also thinking about using the decimal type in the C structure also, as it happens to be a C structure. This way, I can still use the memcpy right?
Please share your thoughts.
IBM Informix Dynamic Server Version 11.50.FC3
Thanks, prabhu
Solution
You could convert to float or decimal directly in your query using a cast
select name_of_float::decimal(8,2) from table
or
select name_of_decimal::float from table