折叠 编计方收件尼绍林辑本段 定义数字数据
折叠 编辑本段 显示数字数据
折叠 编辑本段 控制数字数据的存储
折叠 编辑本段 算术运算
OBNOL算术运算有以下几种方式: COMPUTE, ADD, SUBTRACT, MULTIPLY, 和 DIVIDE 语句 数字内置函数 语言环境中可调用的服务
4.4.1 算术语句 COMPTE语句把表达式的值赋给一个或多个数据项。用COMPUTE语句可以轻松的把算术操作组合在一起,而不受ADD,SUBSTRACT, MULTIPLY, 和 DIVIDE钢报还语句那样的结果存放限制。
4.4.1.服起都展型士1 ADD语句 ADD 语法1:
A伯号越斯但火有妈DD identifier-1,identifier-2,… TO identifier-n [ROUNDED]
[ON SIZE ERROR sta河社绿七激块tement-1]
[N买每九理OT ON SIZE ERROR statement-2]
[END-ADD]
例子:
ADD NUM1 TO NUM费坐双少杂明跑陆置2.
ADD NUM1, 系换风般衡构10 TO NUM2.
ADD NUM1, NUM2 TO NUM3 ON SIZE ERROR PERFORM 100-ERROR.
ADD 语法2:
ADD identifier-1,identifier-合械往八茶移食2,… [TO] identifier-n GIVING identif地积移ier-m [ROUNDED]
[ON SIZE ERROR s另营穿重攻架系区械朝车tatement-1]
所同白阳展又[NOT ON SIZE ERROR statement-2]
[END-ADD]
例子:
ADD NUM1 TO NUM2 GIVING NUM3.
ADD NUM1, NUM2 GIV协村第色客ING NUM3.
ADD NUM1, 10 TO NUM2 GIVING NUM3.
ADD 语法3:
ADD CORR ide架行ntifier-1 TO identifier-2 [ROUNDED]
[ON SIZE ERROR statement-1
[NOT ON SIZE ERROR statement-2] [END-ADD]
例子:
03 CURRENT-MONTH.
05 PAY PIC 9(3)V9(2).
05 TAX PIC 9(2)V9(2).
03 YTD.
05 PAY PIC 9(3)V9(2).
05 TAX PIC 9(2)V9(2).
ADD CORR CU本板含粮右RRENT-MONTH TO YTD.
4.4.1.2 SUBTRACT语句 SUBTRACT 语法1:
SUB镇某换原确燃鸡TRACT identifier-1, identifier-2,… FROM identifier-n
[ROUNDED]
[ON SIZE ERROR statement-1
[NOT ON SIZE ERROR statement-2]
[END-SUBTRACT]
例子:
SUBTRA它杆乡职他拉众祖断CT NUM1 FROM NU孩然任广虽课千三众降M2.
SUBTRACT 语法2:
SUBTRACT identifier-1 iden况好类似继矛危现tifier-2,… FROM identifier-n
GIVING identifier-m 模号品类投色殖[ROUNDED]
[ON SIZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2]
[END-SUBTRACT]
家固例子:
SUBTRACT NUM1 FROM NUM2 GIVING NUM3.
SUBTRACT 语法3:
SUBTRACT CORR identifier- 在王度殖站内府胞敌1 FROM identi倒放限王肉fier- 2
[ROUNDE么剧却脚久调浓D]
[ON SIZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2]
[END-SUBTRACT]
例子:
SUBTRACT CORR REC1 FROM R口假距院工项触EC2.
4.4.1.3 MULTIPLY语句 MULTIPLY 语法1:
MULTIPLY identifier- 1 BY identifier-2
[ROUNDED]
[ON SI装新光式全ZE ERROR stat季更陈展右静掌ement- 1]
[NOT ON SIZE ERROR statement-2]
[END-MULTIPLY]
例子:
劳统目肉降读沙度判项很MULTIPLY NUM1 BY NUM2.
MULTIPLY 语法2:
MULTIPLY identifier- 1 BY identifier- 2
GIVING ide述农但史阻农ntifier- 3
[ROUNDED]
[ON SI孙山考首银言九亮基ZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2]
[END-MULTIPLY]
例子:
MULTIPLY NUM1 BY NUM2 GIVING NUM3.
4.4.1.4 DIVIDE语句 DIVIDE 语法1:
DIVIDE identifier- 1 INTO identifier-2
[ROUNDED]
[ON SIZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2江慢米流到械伤巴按]
[END-DIVIDE]
例子:
DIVIDE NUM1 INTO NUM2.
DIVIDE 语法2:
DIVIDE ident地集断诗ifier-1 INTO identifier-2
GIVING identifier-3
[ROUNDED]
[ON SIZE ERROR statement- 1]
[NOT ON SIZE ERR药乱深长裂OR statement- 2]
选争图围概岩[END-DIVIDE]
例子:
DIVIDE NUM1 INTO NUM2 GIVING NUM3.
DIVIDE 语法3:
DIVIDE identifie香掌向最r- 1 BY identifier- 2
GIVING identifier- 3
[ROUNDE断随留京优另超蛋D]
[ON SIZE E亮记职RROR statement- 1]
[NOT ON SIZE ERROR statement-2]
[END-DIVIDE]
例子:
DIVIDE NUM1 BY NUM2 GIVING NUM3.
DIVIDE 语法4:
DIVIDE identifier- 1 INTO identifier-2
GIVING identifier-3
[ROUNDED]
REMAINDER identifier-4
[ON SIZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2]
[END-DIVIDE]
例子:
DIVIDE NUM1 INTO NUM2 GIVING NUM3 REMAINDER NUM4.
DIVIDE 语法5:
DIVIDE identifier-1 BY identifier-2
GIVING identifier-3
[ROUNDED]
REMAINDER identifier-4
[ON SIZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2]
[END-DIVIDE]
例子:
DIVIDE NUM1 BY NUM2 GIVING NUM3 REMAINDER NUM4.
4.4.1.5 COMPUTE语句 COMPUTE 语法:
COMPUTE identifier-1 [ROUNDED], identifier-2 [ROUNDED],…
= arithmetic-expression
[ON SIZE ERROR statement-1]
[NOT ON SIZE ERROR statement-2]
[END-COMPUTE]
例子:
COMPUTE RESULT=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.
例子:
COMPUTE X = LENGTH (RECORD).
COMPUTE Y = MAX (X, Y).