2

我有一个包含十进制类型列的表。有一个表示该表的 ESQL/C 结构。它有一个十进制类型的成员。对于同一个表,我也有一个普通的 C 结构。上述字段的类型是浮点数。

由于我们使用 memcpy 在 ESQL/C 结构和 C 结构之间复制数据,因此存在小数到浮点转换的问题。当我搜索 Informix ESQL/C Programmer's manual 时,我找不到任何可以执行此操作的函数。谷歌搜索让我找到了 deccvflt() 函数。此函数将浮点类型转换为十进制类型。

虽然我在手册中找不到这个函数,但我在 decimal.h 中看到了声明。是否仍建议使用这些功能?

或者,我也在考虑在 C 结构中使用小数类型,因为它恰好是 C 结构。这样,我仍然可以使用 memcpy 对吗?

请分享你的想法。

IBM Informix 动态服务器版本 11.50.FC3

谢谢,帕布

4

1 回答 1

1

您可以使用强制转换直接在查询中转换为浮点数或小数

select name_of_float::decimal(8,2) from table

或者

select name_of_decimal::float from table
于 2010-04-20T11:42:41.743 回答