GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 653 -
示例
demo 目录中的文件 decround.ec 包含下列样例程序。
/*
* decround.ec *
The following program rounds a DECIMAL type number six times and displays the result
of each operation. */
#include
EXEC SQL include decimal;
char string[] = "-12345.038572";
char result[41];
main()
{
mint x;
mint i = 6; /* number of decimal places to start with */
dec_t num1;
printf("DECROUND Sample ESQL Program running.\n\n");
printf("String = %s\n", string);
while(i)
{
if (x = deccvasc(string, strlen(string), &num1))
{
printf("Error %d in converting string to DECIMAL\n", x);
break;
}
decround(&num1, i);
if (x = dectoasc(&num1, result, sizeof(result), -1))
GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 654 -
{
printf("Error %d in converting result to string\n", x);
break;
}
result[40] = '\0';
printf(" Rounded to %d Fractional Digits: %s\n", i--, result);
}
printf("\nDECROUND Sample Program over.\n\n");
}
输出
DECROUND Sample ESQL Program running.
String = -12345.038572
Rounded to 6 Fractional Digits: -12345.038572
Rounded to 5 Fractional Digits: -12345.03857
Rounded to 4 Fractional Digits: -12345.0386
Rounded to 3 Fractional Digits: -12345.039
Rounded to 2 Fractional Digits: -12345.04
Rounded to 1 Fractional Digits: -12345.
DECROUND Sample Program over.