【问题标题】:COBOL : Move PIC X TO PIC S9.99 COMP-3COBOL:将 PIC X 移动到 PIC S9.99 COMP-3
【发布时间】:2020-08-13 12:19:06
【问题描述】:

如何从示例中移动数据: I-DATA PIC X7 值“12.34”。 至 O-DATA PIC S9(13)V99 COMP-3。

【问题讨论】:

标签: cobol mainframe


【解决方案1】:

i-data 的 pic 子句不好(应该是 PIC X(7))。

无论如何回答你的问题,使用MOVE ... TO ... WITH CONVERSION ON EXCEPTION ... END-MOVE

05 I-DATA PIC X(7).
05 O-DATA PIC S9(13)V99 COMP-3.
05 HAD-ERROR-FLAG PIC X.
   88  HAD-ERROR VALUE "Y" FALSE "N".
...

MOVE I-DATA TO O-DATA WITH CONVERSION
ON EXCEPTION
  MOVE ZERO TO O-DATA
  SET HAD-ERROR TO TRUE
NOT ON EXCEPTION
  SET HAD-ERROR TO FALSE
END-MOVE

【讨论】:

    【解决方案2】:
       05 I-DATA PIC X(7).
       05 I-NUMERIC REDEFINES I-DATA PIC 9999.99.
       .
       .
       MOVE I-NUMERIC TO O-DATA.
    

    您需要将 AlphaNumerc 重新定义为显示数字,然后可以将其移动到压缩十进制变量。小心,因为如果除了数字或空格加上“。”之外还有任何其他内容,这将被 OC7 炸毁。在数据中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多