当我运行以下代码时,我得到以下输出:
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)
结果似乎是正确的.除非使用该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应该保持不变.