代码之家  ›  专栏  ›  技术社区  ›  Michael Swartz

大小错误时不提供预期输出

  •  2
  • Michael Swartz  · 技术社区  · 7 年前

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

           Var1: 761758
    Actual-Var1: 761.758
    Result-Var1: 761.75
    

    Result-Var1 is incorrect size!
           Var1: 761758
    Actual-Var1: 761.758
    Result-Var1: 761.75
    

    我在自学COBOL,我在用Michael couglan的书《程序员的COBOL入门》。他最起码的例子 ON SIZE ERROR 短语见第62页。这看起来很直接,但我不能得到我想要的输出。有什么建议吗?另外,我使用微焦点visualcobolforecplise作为我的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
    
    1 回复  |  直到 7 年前
        1
  •  5
  •   Rick Smith    7 年前

    结果似乎是正确的。低阶数字将被截断,除非 ROUNDED 使用短语。

    这个 SIZE ERROR PICTURE 条款,在这种情况下 999.99 . 尝试

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

    尺寸误差 短语。 Result-Var1