3

我对 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.
4

1 回答 1

10

V你的图片子句是一个隐含的小数点。我认为你想要一个带有 的字段PIC -999.99,其中.是一个明确的小数点,用于它的图片子句。

您可能会认为这是 COBOL 区分变量的定义方式和显示方式。有点像格式字符串printf只是指定如何显示变量,而不是如何定义它。尽管在这两种情况下,定义及其显示方式都必须在一定程度上匹配。

为数字字段选择正确的图片子句很重要;如果您正在进行计算,它可能会对性能产生重大影响。

所以通常有一个定义如下的字段......

PIC 9(4)V99 COMP-3

...以及用于输出目的的相应字段,例如...

PIC ZZZ9.99

...以便可以在第一个上进行计算,并且当需要显示该字段时,可以使用MOVE语句将第一个的内容复制到第二个。

于 2020-04-12T19:06:30.650 回答