浅谈
cobol
的几种数据类型
COBOL
中使用
PICTURE
子句来定义数据类型
.
主要的数据类型有以下几类
,
我将分几篇文章
分别讲述他们的使用和注意的地方
.
类型
示例
说明
字母形
A(2)
只能使用
26
个字符和空格
.
字符形
X(2)
可以使用字符集定义的字符和数字
数字形
S9V99
数字形有三个类型
, binary, packed decimal, zoned decimal.
数字编辑
-zz9.99
用于格式化数值输出
其他如
DBCS
类型
,
浮点形在
COBOL
使用很少
.
对于字符
,
字母形都比较好理解
,
所占字符数
,
就是其定义的个数
.
对于数字编辑形
,
仅仅用于格式化数值
,
不能进行数值运算和布尔比较
.
计算字符数需要如下计算
:
eg:
-zz99.99
所占字符数就是计算所有定义字符数
,
1(-)+2(zz)+2(99)+1(.)+2(99)=8.
其中
-
号表示负数显示
-
号
,
正数不显示
+
号
. zz
表示前导
0,
就是不显示前面的
0.
eg:
PICTURE Value of Data Edited Result
-ZZ99.99 +123.45 123.45
-ZZ99.99 -123.456 - 123.45
至于详细的各类符合和数值编辑的使用
,
将会专门写一章来讲述
.
我们详细说一下数值形
,
按照带不带符合
,
可以区分符合形
,
非符合形
.
安装存储类型
分为
binary, packed decimal, zoned decimal.
以下举例详细说明
,
zone decimal
一般称
9
型
. eg 9(4)V99
或者
s9(4)V99,
每个
9
占一位
,
符号和
V
不
占位
.
示例就分别是
6.
如果这个值是
1234.56,
在内存存储分别是
'F1F2F3F4F5F6',
'F1F2F3F4F5C6'.
对于无符号
,
就是
123456
的
EBCDIC
码
,
对于带符号
,
对于正数
,
最后的
F
为
C
表示正
,
负数为
D
表示负
.
示例就是
'C6'.