运行下面的代码时,我得到以下输出:
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 Coughlan的书《面向程序员的Beginning COBOL》。他在ON SIZE ERROR
短语中的最小示例在第62页上。这看起来很简单,但我无法获得所需的输出。有什么建议么?另外,我将Ecplise的Micro Focus Visual COBOL作为我的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
答案 0 :(得分:5)
结果似乎正确。除非使用ROUNDED
短语,否则低位数字将被截断。
如果结果的值大于SIZE ERROR
子句(在这种情况下为PICTURE
),则999.99
短语将生效。试试
Compute Result-Var1 = Var1 + Var1
On Size Error Display "Result-Var1 is incorrect size!"
End-Compute
测试SIZE ERROR
短语。 Result-Var1
应该保持不变。