deccmp() 函数比较两个 decimal 类型数值。
语法
mint deccmp(n1, n2)
dec_t *n1;
dec_t *n2;
n1
指向要比较的第一个数值的 decimal 结构的指针。
n2
指向要比较的第二个数值的 decimal 结构的指针。
返回代码
-1
第一个值小于第二个值。
0
两个值相同。
1
第一个值大于第二个值。
DECUNKNOWN
有一个值为空。
示例
demo 目录中的文件 deccmp.ec 包含下列样例程序。
/*
* deccmp.ec *
The following program compares DECIMAL numbers and displays the results.
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 623 -
*/
#include
EXEC SQL include decimal;
/* leading spaces will be ignored */
char string1[] = "-12345.6789";
char string2[] = "12345.6789";
char string3[] = "-12345.6789";
char string4[] = "-12345.6780";
main()
{
mint x;
dec_t num1, num2, num3, num4;
printf("DECCOPY 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 = deccvasc(string3, strlen(string3), &num3))
{
printf("Error %d in converting string3 to DECIMAL\n", x);
exit(1);
}
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 624 -
if (x = deccvasc(string4, strlen(string4), &num4))
{
printf("Error %d in converting string4 to DECIMAL\n", x);
exit(1);
}
printf("Number 1 = %s\tNumber 2 = %s\n", string1, string2);
printf("Number 3 = %s\tNumber 4 = %s\n",string3, string4);
printf("\nExecuting: deccmp(&num1, &num2)\n");
printf(" Result = %d\n", deccmp(&num1, &num2));
printf("Executing: deccmp(&num2, &num3)\n");
printf(" Result = %d\n", deccmp(&num2, &num3));
printf("Executing: deccmp(&num1, &num3)\n");
printf(" Result = %d\n", deccmp(&num1, &num3));
printf("Executing: deccmp(&num3, &num4)\n");
printf(" Result = %d\n", deccmp(&num3, &num4));
printf("\nDECCMP Sample Program over.\n\n");
exit(0);
}
输出
DECCMP Sample ESQL Program running.
Number 1 = -12345.6789 Number 2 = 12345.6789
Number 3 = -12345.6789 Number 4 = -12345.6780
Executing: deccmp(&num1, &num2)
Result = -1
Executing: deccmp(&num2, &num3)
Result = 1
Executing: deccmp(&num1, &num3)
Result = 0
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 625 -
Executing: deccmp(&num3, &num4)
Result = -1
DECCMP Sample Program over.