我正在尝试调试调用某些 c 程序进行文本编辑的 perl 应用程序的问题。
BATCH_JV_CSH_MAX 用于测试金额字段的最大值。如果金额超过 99,999,999.99,则当前指示错误。应该接受高达 999,999,999.99 的值。好吧,无论如何,这就是文档中所述的内容。
它在包含文件中:
#define PROJ_SZ 6
#define REF_SZ 9
#define DESC_SZ 22
#define TRAN_AMT_MAX 9999999999e0
#define BATCH_AMT_MAX 9999999999e0
#define BATCH_JV_CSH_MAX 99999999999e0
#define BATCH_CNT_MAX 99999
我还不知道这个程序是如何工作的。它可能会去除除数字以外的任何值并连接字符。在继续之前,我想知道金额末尾的“e0”是什么意思。在我决定询问这个小组之前,我在 Safari 中的几本 c 编程书籍中进行了文本搜索。
此值在错误消息中打印,因此 '999999999' 比 1e9 更有意义
该值的使用方式如下:
/* Batch total amount 1 - debit dollars */
/* Check for overflow */
if (fabs(get_tot_amt1()) > BATCH_JV_CSH_MAX)
{
fprintf(stderr, "\n*** Error: Transaction debit amount overflow\n");
fprintf(stderr, "\n*** Maximum expected: %.0f\n",
BATCH_JV_CSH_MAX);
return (FALSE);
}
sprintf(in_batch_sum.batch_debit_amt, "%011.0f", get_tot_amt1());
get_tot_amt1() 获取一个值 tot_amt1,该值已在另一个 c 程序中计算。它是“静态双”。
是的,我有很多工作要做。这是读取以空格分隔的记录并写出固定格式记录的过程的一部分。
谢谢。凯茜