Я пытаюсь отладить проблему с помощью приложения perl, которое вызывает некоторые c-программы для редактирования текста.Зачем использовать 'e0' в конце определенной константы в c?
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, прежде чем я решил спросить эту группу.
Это значение выводится в сообщении об ошибке, так «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? Тот же макрос может делать разные вещи, в зависимости от того, как он используется. –