我有一个包含十进制类型列的表。有一个表示表的ESQL / C结构。它有一个十进制类型的成员。对于同一个表,我也有一个普通的C结构。上面提到的字段的类型是浮点数。
由于我们使用memcpy将数据复制到ESQL / C结构和从C结构复制数据,因此存在十进制到浮点转换的问题。当我搜索Informix ESQL / C程序员手册时,我找不到任何可以执行此操作的功能。谷歌搜索让我进入了deccvflt()函数。此函数从float转换为十进制类型。
虽然我找不到本手册中列出的这个功能,但我在decimal.h中看到了声明。是否仍建议使用这些功能?
或者,我也在考虑在C结构中使用十进制类型,因为它碰巧是C结构。这样,我仍然可以使用memcpy吗?
请分享您的想法。
IBM Informix Dynamic Server版本11.50.FC3
谢谢, 帕布
答案 0 :(得分:1)
您可以使用强制转换
直接在查询中转换为浮点数或小数select name_of_float::decimal(8,2) from table
或
select name_of_decimal::float from table