cobol与图片有差异( - )和有X的差异

Dec*_*ter 2 cobol

以下两张图片有什么区别?

PIC X(15)

PIC ----,---,---.99.

底部是另一种代表顶部的方式吗?

Nea*_*alB 9

PIC X(15) 代表几乎任何类型数据的15个字符,可以是数字,字母或任何其他符号(可打印或不可打印).

PIC ----,---,---.99表示能够保存+999999999.99到-999999999.99范围内的值的数字编辑数据项.如果放入其中的值为负,则此项目将显示前导减号,否则将显示没有前导符号的数字.显示的数字将在指定位置具有逗号分隔符,前提是它前面至少有一位数字.

以下是某些数字显示方式的一些示例:

999999999.99 displays as 999,999,999.99
1234.56      displays as       1,234.56
0            displays as            .00
-1234567.12  displays as  -1,234,567.12
-3           displays as          -3.00
Run Code Online (Sandbox Code Playgroud)

这样的变量仅供显示.甚至不要考虑用它们做算术!鉴于以下数据声明:

01 DISP-NBR   PIC ----,---,---.99.
01 NBR        PIC S9(9)V99.
Run Code Online (Sandbox Code Playgroud)

以下MOVE操作均有效

MOVE 1234.56 TO NBR
MOVE 1234.56 TO DISP-NBR
Run Code Online (Sandbox Code Playgroud)

然而,

ADD 1 TO NBR
Run Code Online (Sandbox Code Playgroud)

完全有效,但......

ADD 1 TO DISP-NBR
Run Code Online (Sandbox Code Playgroud)

会给你一个编译错误.即使DISP-NBR包含数字数据,它也只是一种显示格式.您需要使用纯数字的数据项进行数学运算,然后MOVE显示"漂亮打印"字段.

此表 描述PICTURE了可能在COBOL中使用的所有元素及其用途.