CDS视图中的算术函数

在CDS中,可以使用一些计算函数来进行计算,同时还能使用CASE来进行分类处理,ABAP CDS提供了以下这些内置函数来进行处理。

1.div(arg1,arg2)

取除法的模值。

  • 仅输入整数值
  • (INT1,INT2,INT4,INT8或DEC,CURR,QUAN,小数= 0)
  • 结果类型:arg1类型
  • 结果总是四舍五入为整数值

2.mod(arg1,arg2)

取ARG1除以ARG2的余数。

  • 输入:仅整数类型(INT1,INT2,INT4,INT8)
  • 结果类型:arg1类型
  • 结果可能为负。

3.division(arg1,arg2,dec)

取arg1除以arg2的值,并保留DEC位的小数位数

  • 输入:整数值,带固定小数的值
  • (类型INT1,INT2,INT4,INTS和DEC,CURR,QUAN,带任意小数位数)
  • 结果类型:带小数点后十进制的DEC,长度取决于arg1的类型
  • 结果总是四舍五入到小数

函数div()和division()之间的主要区别如下:输入:

Div()仅允许输入整数值。Division()仅排除浮点数(二进制或十进制)。

结果:

Div()始终返回整数值作为结果。Division()可让您指定结果的精度。

注意:

关于符号,函数div()和mod()与ABAP运算符DIV和MOD的行为不同。在SQL函数div()中,对参数的数量进行除法然后分配符号(如果参数具有相同的符号,如果符号不同则为负)。因此,MOD的结果可能为负。另一方面,ABAP运算符MOD仅产生正面结果。

4.abs(arg)

  • 返回arg的绝对值,
  • 即总是四舍五入

5.floor(arg)

  • 舍入到下一个较低的整数
  • 即,如果arg> 0,则趋于零;如果arg <0,则远离零

例:

楼层(1.5)= 1

地板(-1.5)=-2

6.ceil(arg)

  • 舍入到下一个更高的整数
  • 即,如果arg> 0,则远离零;如果arg <0,则远离零

例:

ceil(1.5)= 2

ceil(-1.5)=-1

6.1.1.round(arg,pos)

  • pos> 0:将arg舍入到pos小数位
  • pos <0:将arg舍入到位置

例:

回合(3.154,2)= 3.15

回合(273.15,-1)= 270

7.CASE 选择判断处理

CDS视图中的算术函数 - 第1张  | 优通SAP

8.例子

CDS视图中的算术函数 - 第2张  | 优通SAP