ABAP Help Document(16):9.1数字类型数据运算

9.Processing Internal Data

9.1Numerical Calculations

          类CL_ABAP_MATH,浮点数;CL_ABAP_RANDOM,获取随机数;

示例:

"算术运算statements
"[COMPUTE] [EXACT] result = arith_exp | string_exp | bit_exp.
"[COMPUTE] [EXACT] 同时,可省略
"arith_exp
*  [+|-] operand1
*  [{+|-|*|/|DIV|MOD|**} [+|-] operand2
*  [{+|-|*|/|DIV|MOD|**} [+|-] operand3
"string_exp
*{|string_template|}|{operand1 && operand2 [&&operand3]}
"bit_exp
*[BIT-NOT] operand1
*[{BIT-AND|BIT-OR|BIT-XOR} [BIT-NOT] operand2
*[{BIT-AND|BIT-OR|BIT-XOR} [BIT-NOT] operand3
FORM f_numerical_cal.
  DATA:lv_num TYPE decfloat34.
  DATA:lv_char TYPE C LENGTH 10.
  DATA:lo_exec TYPE REF TO cx_sy_conversion_rounding.
  TRY.
    DO 10 TIMES.
      "判断是否有conversion rounding
      COMPUTE EXACT lv_num = 3 / sy-index.
      WRITE:/ lv_num COLOR COL_POSITIVE INTENSIFIED OFF.
    ENDDO.
  CATCH cx_sy_conversion_rounding INTO lo_exec.
      WRITE:/ lv_num COLOR COL_NEGATIVE INTENSIFIED OFF.
  ENDTRY.

  "ADD operand TO result.
  ADD lv_num TO lv_char.
  WRITE:/ lv_char.
  "SUBTRACT dobj1 FROM dobj2.
  "相当于dobj2 = dobj2 - dobj1.
  SUBTRACT lv_num FROM lv_char.
  WRITE:/ lv_char.
  "MULTIPLY dobj1 BY dobj2.
  "dobj1 = dobj1 * dobj2
  MULTIPLY lv_num BY lv_num.
  WRITE:/ lv_num.
  "DIVIDE dobj1 BY dobj2.
  "dobj1 = dobj1 / dobj2
  DIVIDE lv_num BY lv_num.
  WRITE:/ lv_num.
ENDFORM.
原文地址:https://www.cnblogs.com/tangToms/p/14691190.html