Cobol中的小数

问题描述 投票:0回答:1

我对COBOL非常陌生。我正在关注Micro Focus附带的教程,但似乎无法使示例正常工作。我正在尝试打印-123.45,并且不断收到以下消息,enter image description here

我在此处查找了许多帖子,但它们没有解决我的问题。我在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.
eclipse-plugin cobol microfocus
1个回答
0
投票

picture子句中的V暗示小数点。我认为您想要一个带有PIC -999.99的字段,其中.是它的picture子句的explicit小数点。

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

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

所以通常有一个带有诸如...这样的定义的字段>

PIC 9(4)V99 COMP-3

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

PIC ZZZ9.99

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

© www.soinside.com 2019 - 2024. All rights reserved.