我在COBOL的DIVIDE動詞的其餘部分有這個奇數輸出。 目標只是將213.20除以10,然後將商數除以另一個變量以及餘數。我期待在餘下的部分有3.2的價值,但它只是給了我0請賜教。在Cobol中劃分動詞
見下面的代碼片段:
WORKING-STORAGE SECTION.
01 VAR-A PIC S9(09)V99 COMP-3 VALUE 213.20
01 VAR-B PIC S9(09)V99 COMP-3 VALUE 10.00
01 VAR-C PIC S9(09)V99 COMP-3 VALUE 0.
01 VAR-D PIC S9V99 COMP-3 VALUE 0.
PROCEDURE DIVISION.
MAIN-PARAGRAPH.
DIVIDE VAR-A
BY VAR-B
GIVING VAR-C
REMAINDER VAR-D.
DISPLAY 'VAR-A: 'VAR-A.
DISPLAY 'VAR-B: 'VAR-B.
DISPLAY 'VAR-C: 'VAR-C.
DISPLAY 'VAR-D: 'VAR-D.
********************************************
RESULTS:
VAR-A: 00000021320
VAR-B: 00000001000
VAR-C: 00000002132
VAR-D: 000
只要剩餘的大小至少是除數的餘數,餘數的精度至少是除數和餘數的餘數,餘數將是準確的。在OP的情況下,滿足這些條件 。問題在於除數的精度等於股息 剩下零餘數。如果符合精度/宏觀條件的要求爲 ,則以下等式適用:「股息/除數=商數+餘數」和 「商數*除數+餘數=股息」。如果這種關係失敗,則在一個或多個變量中存在精度/宏觀失配。 – NealB