更新日期:2024年09月11日
deccvflt() 函数将 C float 类型数值转换为 ESQL/C decimal 类型数值。
语法
int deccvflt(flt_val, dec_val)
float flt_val;
dec_t *dec_val;
flt_val
deccvflt() 转换为 decimal 类型值的 float 值。
dec_val
指向 deccvflt() 放置转换结果的 decimal 结构的指针。
返回代码
0
转换成功。
<0
转换失败。
示例
下列示例程序将两个 float 类型数值转换为 DECIMAL 数值,并显示结果。
#include
EXEC SQL include decimal;
char result[41];
main()
{
int x;
dec_t num;
float f = 2147483674;
printf(“DECCVFLT Sample ESQL Program Running.\n\n);
if (x = deccvflt((float)1234.5678901234, #))
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 634 -
{
printf(“Error %d in converting double1 to DECIMAL\n”, x);
exit(1);
}
if (x = dectoasc(#, result, sizeof(result), -1))
{
printf(“Error %d in converting DECIMAL1 to string\n”, x);
exit(1);
}
result[40] = ‘\0’;
printf(“ String Value = %s\n”, result);
printf(“ Number 2 (float) = %.1f\n”, f);
if (x = deccvflt(f, #))
{
printf(“Error %d in converting float2 to DECIMAL\n”, x);
exit(1);
}
if (x = dectoasc(#, result, sizeof(result), -1))
{
printf(“Error %d in converting DECIMAL2 to string\n”, x);
exit(1);
}
result[40] = ‘\0’;
printf(“ String Value = %s\n”, result);
printf(“\n DECCVFLT Sample Program Over.\n\n”);
exit(0);
}
输出
DECCVFLT Sample ESQL Program running.
Number 1 (float) = 1234.5678901234
String Value = 1234.56787
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 635 -
Number 2 (float) = 2147483647.0
String Value = 2147483647.0
DECCVFLT Sample Program over.