RPG/400中有两种数值型数据相对应,一种是ZONED DECIMAL, 另一种是PACKED DECIMAL。 它们虽然都
可以存放数值型数据,但是它们所占用的存储空间是不一样大的。
ZONED DECIMAL用一个BYTE存放一个数字,而PACKED DECIMAL用一个BYTE存放两个数字,这样
可以看出用PACKED DECIMAL存放数据比ZONED DECIMAL节约一倍的空间. 另外还有一个原因,RPG/400的编
译器会将所有的ZONED DECIMAL数据自动转换为PACKED DECIMAL类型,所以选用PACKED DECIMAL类型可以提高
应用程序的运行效率。因此,最好选用PACKED DECIMAL来存放数值型数据。
还要特别注意:
最好将PACKED DECIMAL的长度定义为奇数长度。
这是因为有一个计算公式:
PACKED DECIMAL数据所占空间(byte)= (数字长度+1)/2 (四舍五入)
例如
6位数据所占的空间=(6+1)/2=4 bytes
7位数据所占的空间=(7+1)/2=4 bytes
所以,PACKED DECIMAL的长度定义为奇数长度会更节省存储空间。