我正在尝试使用调用某些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程序中计算.这是"静态双重".
是的,我有很多工作要做.这是读取空格分隔记录并写出固定格式记录的过程的一部分.
谢谢.凯茜
这意味着0指数因此5e0
是5 x 10^0 == 5 x 1 == 5
.我认为宏被定义为只是为了给数字一个浮点类型(作为使用just 5.0
或5f
.的替代方法)