大小错误不会给出预期的输出

Mic*_*rtz 2 cobol

当我运行以下代码时,我得到以下输出:

       Var1: 761758
Actual-Var1: 761.758
Result-Var1: 761.75
Run Code Online (Sandbox Code Playgroud)

我期待的是:

Result-Var1 is incorrect size!
       Var1: 761758
Actual-Var1: 761.758
Result-Var1: 761.75
Run Code Online (Sandbox Code Playgroud)

我正在教自己COBOL,我正在使用Michael Coughlan的书,Beginning COBOL for Programmers.他这个ON SIZE ERROR短语的最小例子是在第62页.它似乎很直接,但我无法获得我想要的输出.有什么建议?另外,我正在使用Micro Focus Visual COBOL for Ecplise作为我的IDE.

       Identification Division.
       Program-ID. OnSizeErrorDemo.

       Data Division.
       Working-Storage Section.
         01 Var1 Pic 999V999 Value 761.758.
         01 Actual-Var1 Pic 999.999.
         01 Result-Var1 Pic 999.99.

       Procedure Division.
       Begin.
         Move Var1 To Actual-Var1

         Compute Result-Var1 = Var1
           On Size Error Display "Result-Var1 is incorrect size!"
         End-Compute

         Display "       Var1: ", Var1
         Display "Actual-Var1: ", Actual-Var1
         Display "Result-Var1: ", Result-Var1
       Stop Run
Run Code Online (Sandbox Code Playgroud)

Ric*_*ith 5

结果似乎是正确的.除非使用该ROUNDED短语,否则将截断低位数字.

SIZE ERROR如果结果的值大于PICTURE子句,则该短语将生效,在本例中999.99.尝试

 Compute Result-Var1 = Var1 + Var1
   On Size Error Display "Result-Var1 is incorrect size!"
 End-Compute
Run Code Online (Sandbox Code Playgroud)

测试这SIZE ERROR句话.Result-Var1应该保持不变.