Nea*_*alB 17
USAGE
在COBOL中描述了如何使用数据项.USAGE的一些例子是:
PIC 9(5) USAGE DISPLAY
描述可以显示(打印)的5位数字.通常会USAGE DISPLAY
被遗弃,因为如果遗漏则暗示.有各种类型的数字项.两种最常用的数字数据类型是:
COMP(BINARY)数据项通常是对表示整数值的数据项执行计算的最有效方式.
COMP-3(PACKED-DECIMAL)数据项在COBOL中使用,因为它们保持固定的小数点数.所有计算都会产生具有规定小数点数的结果.这在会计类型操作中特别有用.浮点数使得小数点变量后面的位数(例如小数点可以"浮动"),这不是通常表示财务操作的方式.
您可以在此处找到IBM Enterprise COBOL的完整计算项目列表
许多程序员在使用COBOL时遇到的问题之一是理解COMP项目非常适合进行数学运算,但在通过MOVE语句将其转换为DISPLAYable项目之前无法显示(打印).如果将COMP项目移动到报表或屏幕上,它将无法很好地呈现.需要先将其移动到DISPLAY项目中.
您可能想要进一步研究的另一件事是在COBOL中定义变量时PICture和USAGE之间的关系.以下是 利默里克大学非常好的COBOL入门教程的链接.
dan*_*n04 15
COBOL实际上只有两种数据类型:数字和字符串.
COBOL记录中每个字段的布局由PICTURE
(通常是缩写的PIC
)子句精确指定.最常见的是:
PIC X
对于字符串. PIC X(100)
表示一个100字节的字符串.PIC 9
对于数字,可选择带S
(符号)或V
(隐含小数点).例如,PIC S9(7)V99
表示隐含小数点左侧7位数字和右侧2位数的带符号数字.数字字段可以有一个USAGE
子句来优化其存储.最常见的USAGE
s为DISPLAY
,COMP
和COMP-3
.
DISPLAY
将每个数字存储为一个字符.例如,PIC 9(4) VALUE 123
将数字存储为字符串"0123".并将其PIC 9(4)V99 VALUE 123.45
存储为"012345".请注意,实际上并未存储小数点.
这是一种效率低下的格式,因为它需要8位来表示每个数字.但它通过使用最后一个字节的一半来存储符号,确实对签名数字进行了"优化".通常,EBCDIC数字都具有F的高nybble,因此0123是F0 F1 F2 F3.但-0123是F0 F1 F2 D3 ; D表示否定.C表示正数,F表示无符号(即正数).(类似格式用于COBOL的ASCII版本,但不是标准化的.)
COMP-3
是二进制编码的十进制,尾随符号为nybble. PIC 9(3) COMP-3 VALUE 123
成为两个字节12 3F.
COMP
或者BINARY
是本地二进制格式,就像short
,int
或long
在C.
小智 5
至于决定使用哪种数据类型,它可能会变得非常复杂 - 但是 - 一组简单的准则是:
显示和编辑区域小数只能用于在报告或系统输出中显示数字。将 COMP 和 COMP-3 字段移至“显示/编辑”字段,然后再将其放入报告或系统输出中。
COMP - 具有最快的整数计算速度
COMP-3 (打包十进制)- 当应保留小数位置时应使用。
COMP 和 COMP-3 字段可以在计算中一起使用。编译器将确定哪种字段类型将(在幕后)转换为单个通用数字数据类型 -基于规则。
归档时间: |
|
查看次数: |
50750 次 |
最近记录: |