我對cobol中計算函數的圓角感到困惑。計算圓角在cobol中
聲明:
VAR-A PIC S9(9)V99 COMP-3.
VAR-B PIC S9(9)V9(6) COMP-3.
程序。
MOVE +12.08 TO VAR-A.
MOVE +6.181657 TO VAR-B.
COMPUTE VAR-A ROUNDED = VAR-A + VAR-B.
VAR-A的結果是18.27還是18.26? cobol在計算上會做什麼? 它會將VAR-B首先循環到VAR-A中指定的小數位,還是將cobol添加2個變量,然後將它們四捨五入到VAR-A中指定的小數位?
任何幫助將不勝感激。
@NealB,
這樣如何例如:
聲明:
01 VAR-ARRAY OCCURS 22 TIMES.
03 VAR-A PIC S9(9)V9(6) COMP-3.
01 VAR-B PIC S9(9)V99 COMP-3.
假定VAR-A是一個數組,並且,以下是其值:
VAR-A(01) = 123.164612
VAR-A(02) = 12.07865
VAR-A(03) = 6.181657
VAR-A(04) = 1.744353
VAR-A(05) = 6.118182
VAR-A(06) = 1.744353
VAR-A(07) = 6.158715
VAR-A(08) = 1.744353
VAR-A(09) = 6.194759
VAR-A(10) = 1.744353
VAR-A(11) = 3.037896
VAR-A(12) = 1.743852
VAR-A(13) = 6.14653
VAR-A(14) = 1.744353
VAR-A(15) = 0.000377
VAR-A(16) = 1.743852
VAR-A(17) = 6.144363
VAR-A(18) = 1.743852
VAR-A(19) = 0.007649
VAR-A(20) = 1.744353
VAR-A(21) = 0.000377
VAR-A(22) = 1.744353
VAR-B的價值是:
VAR-B = 405.25
程序:
PERFORM VAR-IDX FROM 1 BY 1 UNTIL VAR-IDX > 22
COMPUTE VAR-B ROUNDED = VAR-B + VAR-A(VAR-IDX)
END-PERFORM.
爲什麼我得到597.87的VAR-B作爲計算後的結果?
奇怪的答案......我得到597.88 ,我相信這是正確的。你正在使用哪種COBOL編譯器? – NealB