我对 COBOL 很陌生。我正在学习 Micro Focus 附带的教程,但似乎无法让示例正常工作。我正在尝试打印 -123.45 并且我不断收到以下信息,
我在这里查了很多帖子,都没有解决我的问题。我在Eclipse 中使用 Micro Focus 的 Visual COBOL 。这是我的代码,
program-id. tictac as "tictac".
environment division.
configuration section.
data division.
working-storage section.
01 WS-NUM3 PIC S9(3)V9(2) VALUE -123.45.
procedure division.
Display WS-NUM3.
goback.
end program tictac.
Run Code Online (Sandbox Code Playgroud)
将V
您的图片子句是一个隐含的小数点。我想你想要一个带有 的字段PIC -999.99
,其中.
是一个明确的小数点,用于它的图片子句。
您可能认为这是 COBOL 区分变量的定义方式和显示方式。有点像格式字符串 inprintf
只是指定如何显示变量,而不是如何定义它。尽管在这两种情况下,定义及其显示方式必须在一定程度上匹配。
为数字字段选择正确的图片子句很重要;如果您正在进行计算,它可能会对性能产生重大影响。
因此,通常有一个具有定义的字段,例如...
PIC 9(4)V99 COMP-3
Run Code Online (Sandbox Code Playgroud)
...以及用于输出目的的相应字段,例如...
PIC ZZZ9.99
Run Code Online (Sandbox Code Playgroud)
...以便计算可以在第一个上完成,并且当需要显示该字段时,可以使用MOVE
语句将第一个的内容复制到第二个。