我对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.
picture子句中的V
是暗示小数点。我认为您想要一个带有PIC -999.99
的字段,其中.
是它的picture子句的explicit小数点。
您可能会认为这是COBOL,它在变量的定义方式和显示方式之间做出了区分。有点像printf
中的格式字符串,只是指定如何显示变量,而不是如何定义变量。尽管在这两种情况下,定义及其显示方式都必须在一定程度上匹配。
为数字字段选择正确的图片子句很重要;如果您要进行计算,可能会对性能产生重大影响。
所以通常有一个带有诸如...这样的定义的字段>
PIC 9(4)V99 COMP-3
...以及用于输出目的的相应字段,例如...
PIC ZZZ9.99
...以便可以在第一个上进行计算,并且在显示该字段时是必要的,使用
MOVE
语句将第一个的内容复制到第二个。