decadd() 函数将两个 decimal 类型值相加。
语法
mint decadd(n1, n2, sum)
dec_t *n1;
dec_t *n2;
dec_t *sum;
n1
指向第一个运算对象的 decimal 结构的指针。
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 620 -
n2
指向第二个运算对象的 decimal 结构的指针。
sum
指向包含总和(n1 + n2)的 decimal 结构的指针。
用法
sum 可与 n1 或 n2 相同。
返回代码
0
操作成功。
-1200
导致溢出的操作。
-1201
导致下溢的操作。
示例
demo 目录中的文件 decadd.ec 包含下列样式程序。
/*
* decadd.ec *
The following program obtains the sum of two DECIMAL numbers.
*/
#include
EXEC SQL include decimal;
/* leading spaces will be ignored */
char string1[] = " 1000.6789";
char string2[] = "80";
char result[41];
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 621 -
main()
{
mint x;
dec_t num1, num2, sum;
printf("DECADD Sample ESQL Program running.\n\n");
if (x = deccvasc(string1, strlen(string1), &num1))
{
printf("Error %d in converting string1 to DECIMAL\n", x);
exit(1);
}
if (x = deccvasc(string2, strlen(string2), &num2))
{
printf("Error %d in converting string2 to DECIMAL\n", x);
exit(1);
}
if (x = decadd(&num1, &num2, ∑))
{
printf("Error %d in adding DECIMALs\n", x);
exit(1);
}
if (x = dectoasc(∑, result, sizeof(result), -1))
{
printf("Error %d in converting DECIMAL result to string\n", x);
exit(1);
}
result[40] = '\0';
/* display result */
printf("\t%s + %s = %s\n", string1, string2, result);
printf("\nDECADD Sample Program over.\n\n");
exit(0);
}
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 622 -
输出
DECADD Sample ESQL Program running.
1000.6789 + 80 = 1080.6789
DECADD Sample Program over.