【问题标题】:Decimals in COBOLCOBOL 中的小数
【发布时间】:2020-07-25 07:53:24
【问题描述】:

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

【问题讨论】:

    标签: cobol microfocus


    【解决方案1】:

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

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

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

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

    PIC 9(4)V99 COMP-3
    

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

    PIC ZZZ9.99
    

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

    【讨论】:

    • 另一种可能是01 WS-NUM3 PIC S9(3)V9(2) sign leading separate VALUE -123.45.
    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多