数字数据
在数据通信中,数字数据(digitaldata)也称为数字量,相对于模拟量而言,指的是取值范围是离散的变量或者数值。
中文名:数字数据
外文名:digitaldata
别称:数字量
定义:取值范围是离散的变量或者数值
1、定义数字数据
数字数据项用PICTURE子句定义。数据描述中的每个9代表一个十进制位。
可以出现的特殊含义字符有:P指示前导0和尾部0S指示符号,正号或负号V隐含的小数点
数据是关于某些方面的一组数字。
2、显示数字数据
为了让数字数据在显示和打印的时候更容易阅读,可以使用编辑标志(如:小数点,逗号,美元符号和借方符号贷方符号)格式化数字数据项。
例如,在下面的代码中Edited-price就是编辑的数字数据项:
05PricePic9(5)v99.
05Edited-pricePic$zz,zz9.99.
...
MovePriceToEdited-price
DisplayEdited-price
MoveEdited-pricetoPrice
DisplayPrice
3、控制数字数据的存储
COBOL程序中的数字数据可以以下格式存储:外部十进制(USAGEDISPLAY)外部浮点型(USAGEDISPLAY)内部十进制(USAGEPACKED-DECIMAL)二进制(USAGEBINARY)本地二进制(USAGECOMP-5)内部浮点型(USAGECOMP-1,USAGECOMP-2)
COMP和COMP-4等价于BINARY(二进制),COMP-3等价于(打包十进制)PACKED-DECIMALCOMP。
4、算术运算
OBNOL算术运算有以下几种方式:COMPUTE,ADD,SUBTRACT,MULTIPLY,和DIVIDE语句数字内置函数语言环境中可调用的服务
4.4.1算术语句COMPTE语句把表达式的值赋给一个或多个数据项。用COMPUTE语句可以轻松的把算术操作组合在一起,而不受ADD,SUBSTRACT,MULTIPLY,和DIVIDE语句那样的结果存放限制。
4.4.1.1ADD语句ADD语法1:
ADDidentifier-1,identifier-2,…TOidentifier-n
例子:
ADDNUM1TONUM2.
ADDNUM1,10TONUM2.
ADDNUM1,NUM2TONUM3ONSIZEERRORPERFORM100-ERROR.
ADD语法2:
ADDidentifier-1,identifier-2,…identifier-nGIVINGidentifier-m
例子:
ADDNUM1TONUM2GIVINGNUM3.
ADDNUM1,NUM2GIVINGNUM3.
ADDNUM1,10TONUM2GIVINGNUM3.
ADD语法3:
ADDCORRidentifier-1TOidentifier-2
例子:
03CURRENT-MONTH.
05PAYPIC9(3)V9(2).
05TAXPIC9(2)V9(2).
03YTD.
05PAYPIC9(3)V9(2).
05TAXPIC9(2)V9(2).
ADDCORRCURRENT-MONTHTOYTD.
4.4.1.2SUBTRACT语句SUBTRACT语法1:
SUBTRACTidentifier-1,identifier-2,…FROMidentifier-n
例子:
SUBTRACTNUM1FROMNUM2.
SUBTRACT语法2:
SUBTRACTidentifier-1identifier-2,…FROMidentifier-n
GIVINGidentifier-m
例子:
SUBTRACTNUM1FROMNUM2GIVINGNUM3.
SUBTRACT语法3:
SUBTRACTCORRidentifier-1FROMidentifier-2
例子:
SUBTRACTCORRREC1FROMREC2.
4.4.1.3MULTIPLY语句MULTIPLY语法1:
MULTIPLYidentifier-1BYidentifier-2
例子:
MULTIPLYNUM1BYNUM2.
MULTIPLY语法2:
MULTIPLYidentifier-1BYidentifier-2
GIVINGidentifier-3
例子:
MULTIPLYNUM1BYNUM2GIVINGNUM3.
4.4.1.4DIVIDE语句DIVIDE语法1:
DIVIDEidentifier-1INTOidentifier-2
例子:
DIVIDENUM1INTONUM2.
DIVIDE语法2:
DIVIDEidentifier-1INTOidentifier-2
GIVINGidentifier-3
例子:
DIVIDENUM1INTONUM2GIVINGNUM3.
DIVIDE语法3:
DIVIDEidentifier-1BYidentifier-2
GIVINGidentifier-3
例子:
DIVIDENUM1BYNUM2GIVINGNUM3.
DIVIDE语法4:
DIVIDEidentifier-1INTOidentifier-2
GIVINGidentifier-3
REMAINDERidentifier-4
例子:
DIVIDENUM1INTONUM2GIVINGNUM3REMAINDERNUM4.
DIVIDE语法5:
DIVIDEidentifier-1BYidentifier-2
GIVINGidentifier-3
REMAINDERidentifier-4
例子:
DIVIDENUM1BYNUM2GIVINGNUM3REMAINDERNUM4.
4.4.1.5COMPUTE语句COMPUTE语法:
COMPUTEidentifier-1,identifier-2,…
=arithmetic-expression
例子:
COMPUTERESULT=NUM1*NUM2+NUM3-NUM4.
4.4.2算术表达式允许数字数据项出现的地方都可以替换为算术表达式。
算术表达式可以有正负号(+,-),幂指数符号(**),除号或乘号(/,*)和加号或减号(+,-)。
4.4.3数字内置函数数字内置函数只能出现在数字表达式允许出现的地方。
数字内置函数返回一个有符号的数值。函数本身可以看成临时数字数据项。
下面是一些数字内置函数:数字处理:LENGTH,MAX,MIN,NUMVAL,NUMVAL-C,ORD-MAX,ORD-MIN日期和时间:CURRENT-DATE,DATE-TO-YYYYMMDD,…etc数学:INTEGER,LOG,SUM,SIN,COS,MOD,…etc.
例子:
COMPUTEX=LENGTH(RECORD).
COMPUTEY=MAX(X,Y).
推荐阅读