ABAP语法基础篇(4)——数值运算
四、数值运算
要处理数值数据对象并将结果值赋给数据对象,可以用 COMPUTE
语句或赋值运算符 =
。
COMPUTE
语句语法如下所示:
COMPUTE <n> = <expression>.
关键字 COMPUTE
可选。
4.1 基本算术运算
ABAP/4支持四种基本算术运算,同时还支持乘方计算。可以用数学表达式指定以下算术运算符:
符号 | 描述 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
DIV | 整除 |
MOD | 求余 |
** | 求幂 |
可以用关键字 ADD
、 SUBTRACT
、 MULTIPLY
和 DIVIDE
进行基本算术运算,而不使用数学表达式中的运算符。
4.2 字符串的算术运算
类似于用 MOVE-CORRESPONDING
语句在字段串之间复制值,可以用以下关键字,执行字段串的算术运算:
ADD-CORRESPONDING
SUBTRACT-CORRESPONDING
MULTIPLY-CORRESPONDING
DIVIDE-CORRESPONDING
对于所有同名字段串组件, ABAP/4进行相应算术运算。然而,仅当所有相关组件都是数值型数据类型时,该运算才有意义。
4.2.1 添加字段顺序
除基本算术运算中所述的基本加法之外, ADD 语句有几个变体,用于添加字段顺序。
例如, 添加字段顺序并将结果赋给另一个字段 :
ADD <n1> THEN <n2> UNTIL <nz> GIVING <m>.
如果 <n1> 、 <n2> 、 ... 、 <nz>
是在内存中相同类型和长度的等距字段序列,则进行求和计算并将结果赋给 <m>
添加字段顺序并将结果添加到另 一个字段 内容中 :
ADD <n1> THEN <n2> UNTIL <nz> TO <m>.
该语句除了将字段总和添加到 <m>
的旧内容中之外,与上面语句的工作方式相同。
4.3 数学函数
以下内部函数使用所有三种数值数据类型( F 、 I 和 P )作为参数。
函数 | 结果 |
---|---|
ABS | 参数的绝对值 |
SIGN | 参数符号: 1 X > 0 SIGN( X ) = 0 if X = 0 -1 X < 0 |
CEIL | 不小于参数的最小整数值 |
FLOOR | 不大于参数的最大整数值 |
TRUNC | 参数的整数部 分 |
FRAC | 参数的分数部 分 |
4.4 浮点函数
以下内部函数用浮点数据类型( F )作为参数。
函数 | 解释 |
---|---|
ACOS 、 ASIN 、 ATAN ; COS 、 SIN 、 TAN | 三角函数 |
COSH 、 SINH 、 TANH | 反三角函数 |
EXP | 基数为 e 的求幂函数( e=2.7182818285 ) |
LOG | 基数为 e 的自然对数 |
LOG10 | 基数为 10 的对数 |
SQRT | 平方根 |
对于所有函数,正常数学约束适用。否则,会产生运行错误。