1. 数值运算符号或语句
+、-、*、/ | 加减乘除基础运算 | |
MOD | 取余 | n = j MOD k |
DIV | 整除 | n = j DIV k |
** | 幂运算 | n = j ** k |
ipow | 幂运算 | n = ipow( base = j exp = k ). |
abs | 绝对值 | n = abs( m ). |
sign | 符号,负数=-1,0=0,正数=1 | n = sign( m ) |
ceil | 不小于该值的最小整数 | n = ceil( m ) |
floor | 不大于该值的最大整数 | n = floor( m ) |
trunc | 取整 | n = trunc( m ) |
frac | 取小数部分 | n = frac( m ) |
round | round运算 | n = round( val = m dec = 2 mode = cl_abap_math=>round_half_up ). |
exp | 自然常数e为底的指数函数 | n = exp( m ) |
log | 自然对数,参数大于0 | n = log( m ) |
log10 | 底数为10的对数 | n = log10( m ) |
sqrt | 平方根 | n = sqrt( m ) |
ACOS(X) | 反余弦函数,结果0到π,参数-1到1 | |
asin | 反正弦函数 结果-π/2到π/2,参数-1到1 | |
atan | 反正切函数 结果-π/2到π/2 | |
cos | 余弦函数,结果-1到1,参数0到π | |
sin | 正弦函数,结果-1到1,参数-π/2到π/2 | |
tan | 正切函数 | |
cosh | 双曲余弦 | |
sinh | 双曲正弦 | |
tanh | 双曲正切 |
2. 实例程序
CLASS demo DEFINITION.
PUBLIC SECTION.
CLASS-METHODS main.
ENDCLASS.
CLASS demo IMPLEMENTATION.
METHOD main.
DATA n TYPE p LENGTH 16 DECIMALS 6.
DATA m TYPE p LENGTH 16 DECIMALS 6.
DATA(out) = cl_demo_output=>new( ).
DO 2 TIMES.
m = sy-index * 10 - '15.555555'.
out->begin_section( |参数: { m }| ).
n = abs( m ).
out->write( |绝对值[n = abs( m )]: { n }| ).
n = sign( m ).
out->write( |符号,负数=-1,0=0,正数=1[n = sign( m )]: { n }| ).
n = ceil( m ).
out->write( |不小于该值的最小整数[n = ceil( m )]: { n }| ).
n = floor( m ).
out->write( |不大于该值的最大整数[n = ceil( m )]: { n }| ).
n = trunc( m ).
out->write( |取整[n = trunc( m )]: { n }| ).
n = frac( m ).
out->write( |取小数部分[n = frac( m )]: { n }| ).
n = round( val = m dec = 1 mode = cl_abap_math=>round_half_up ).
out->write( |round-四舍五入[n = round( val = m dec = 1 mode = cl_abap_math=>round_half_up )]: { n }| ).
n = round( val = m dec = 1 mode = cl_abap_math=>round_down ).
out->write( |rounddown[n = round( val = m dec = 1 mode = cl_abap_math=>round_down )]: { n }| ).
n = round( val = m dec = 1 mode = cl_abap_math=>round_up ).
out->write( |roundup[n = round( val = m dec = 1 mode = cl_abap_math=>round_up ) ]: { n }| ) .
out->end_section( ).
ENDDO.
DO 3 TIMES.
m = sy-index * 2 + 4.
out->begin_section( |参数: { m }| ).
n = ipow( base = m exp = 2 ).
out->write( |幂运算m的2次方[n = ipow( base = m exp = 2 )]: { n }| ).
n = m ** 2.
out->write( |幂运算m的2次方,会导致浮点数误差[n = m ** 2]: { n }| ).
n = exp( m ).
out->write( |自然常数e为底的指数函数[n = exp( m )]: { n }| ).
n = log( m ).
out->write( |自然对数[n = log( m )]: { n }| ).
n = log10( m ).
out->write( |以10为底数的对数[n = log10( m )]: { n }| ).
n = sqrt( m ).
out->write( |平方根[n = sqrt( m )]: { n }| ).
out->end_section( ).
ENDDO.
DO 3 TIMES.
m = 2 - sy-index.
out->begin_section( |参数: { m }| ).
n = acos( m ).
out->write( |反余弦,m为-1到1之间的值[n = acos( m )]: { n }| ).
n = asin( m ).
out->write( |反正弦,m为-1到1之间的值[n = asin( m )]: { n }| ).
n = atan( m ).
out->write( |反正切[n = atan( m )]: { n }| ).
out->end_section( ).
ENDDO.
m = '4.712552'.
DO 4 TIMES.
m = m - '1.570796'.
out->begin_section( |参数: { m }| ).
n = cos( m ).
out->write( |余弦[n = cos( m )]: { n }| ).
n = sin( m ).
out->write( |正弦[n = sin( m )]: { n }| ).
n = tan( m ).
out->write( |正切[n = tan( m )]: { n }| ).
out->end_section( ).
ENDDO.
m = 0.
out->begin_section( |参数: { m }| ).
n = cosh( m ).
out->write( |双曲余弦[n = cosh( m )]: { n }| ).
n = sinh( m ).
out->write( |双曲正弦[n = sinh( m )]: { n }| ).
n = tanh( m ).
out->write( |双曲正切[n = tanh( m )]: { n }| ).
out->end_section( ).
out->display( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
demo=>main( ).