mvspub.com终于上线了!
作者:习惯有你 日期:2007-08-24
COBOL NOTES(三)
作者:习惯有你 日期:2007-05-15
COBOL NOTES(二)
作者:习惯有你 日期:2007-05-15
COBOL语法和文法(2)
作者:习惯有你 日期:2007-05-15
COBOL语法和文法(1)
作者:习惯有你 日期:2007-05-15
COBOL语言数据类型转换方法
作者:习惯有你 日期:2007-05-15
计息是银行的一项重要业务,包括日常代理客户收、付计算客户利息和年度计息等。目前,这些工作大多数是在IBM ES9000主机的SAFE应用系统平台上进行,该系统联机程序和联机计息程序是用IBM 370汇编语言实现的。为方便汇编语言读写,在VSAM文件存储的数据中,数据存放格式进行了特殊的定义。如日期存放采用X(3)型,01年03月15日,存入EBCD码为X‘010315’。在进行年度计息时,为了实现各种复杂的运算工作,一般采用COBOL语言来实现各种运算。而采用COBOL语言读取X(3)型数据时,读出的是字符型数据,不能直接进行运算,必须转换为COBOL数据类型的数据后才能进行相应处理。如刚才的X‘010315’,需要转换为内部十进制数据X‘0010315C’。本文介绍一种用COBOL语言实现字符型X(3)与内部十进制数据相互转换的方法。
由X(3)型转换为内部十进制
由于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST后,再追加定义COBOL语言的最小数据单元X‘000C’,即十进制12。由于重定义DATE-CASE为DATE-CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将DATE-CHANGE除以1000。
首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容:
WORKING-STORAGE SECTION.
由X(3)型转换为内部十进制
由于日期数据总是大于零,在COBOL语言的工作单元节定义变量DATE-FIRST后,再追加定义COBOL语言的最小数据单元X‘000C’,即十进制12。由于重定义DATE-CASE为DATE-CHANGE后,DATE-CHANGE是原日期数据的1000倍,于是要在过程部将DATE-CHANGE除以1000。
首先,在COBOL程序WORKING-STORAGE SECTION. 中定义如下内容:
WORKING-STORAGE SECTION.
COBOL NOTES
作者:习惯有你 日期:2007-05-15
用法子句(USAGE子句) 使用用法(USAGE)子句可以使程序设计者自由选挥数据杯内存中的存放形式。譬如,数据项A和B是需要多次进行运算,如果用外部十进制形式则来回转换会大大降低运算速度,这时,可以选择A和B为定点二进制形式或内部浮点形式.如果数据项C和D轻加运算次数少,而且需要多次打印出C和D的结果,这时用外部十进制比较适合,因为它最适合打印的要求,不必再进行转换。 USAGE IS DISPLAY/COMP DISPLAY (标准数据形式。一个字节放一字符) COMP 定点二近制形式 COMP-1:内部短浮点形式 COMP-2:内部长浮点形式 COMP-3:内部十进制形式如果对组合项描述为某一种存放形式,则表示这个组合项的下属各初等项都是这 种形式。 USAGE子句指定的数据存放形式不应与PIC子句指定的数据类型矛盾.长、短浮点形式己确定了内存的长度,不应再用PIC子句. 用WRITE语句输出时,是直接按内存中存放数据形式输出(不加转换的).这是和用DISPLAY语句时不同的.
Tags: COBOL
- 1