我試圖調用一個perl應用程序調用一些c程序來做文本編輯的問題。爲什麼在c中定義常量的末尾使用'e0'?
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程序中計算。這是「靜態雙重」。是的,我有很多工作要做。這是讀取空格分隔記錄並寫出固定格式記錄的過程的一部分。
謝謝。 Cathy
您能否顯示BATCH_JV_CSH_MAX被使用的上下文?同一個宏可以做不同的事情,這取決於它的使用方式。 – 2009-04-20 19:51:35