ABAP 保留指定小数位

ROUND函数

INT_SORT-MENGE = ROUND( VAL = LTB-EMENG * P_QPA DEC = 3 MODE = 1 ).

mode代表着小数省略的规则,

  • 1: 默认值,这个值总是从 0 四舍五入到更大的绝对值
  • 5: 这个值总是从 0 四舍五入到更小的绝对值

Function:HR_NZ_ROUNDING_DECIMALS

DATA : dat  TYPE p DECIMALS  VALUE '12.5445' ,
       dat_result TYPE p DECIMALS  .
CALL FUNCTION 'HR_NZ_ROUNDING_DECIMALS'
  EXPORTING
    value_in                 = dat
    conv_dec                 = 2      " 设置保留几位小数
  IMPORTING
    value_out                = dat_result
  EXCEPTIONS
    no_rounding_required     = 1
    decimals_greater_than_10 = 2
    rounding_error           = 3
    OTHERS                   = 4.

Function:Round

DATA : dat  TYPE p DECIMALS  VALUE '12.540' ,
       dat_result TYPE p DECIMALS  .
CALL FUNCTION 'ROUND'
  EXPORTING
    decimals      = 2
    input         = dat
    sign          = '-' "+ 向上取舍,- 向下取舍(负数也一样)"
  IMPORTING
    output        = dat_result
  EXCEPTIONS
    input_invalid = 1
    overflow      = 2
    type_invalid  = 3
    OTHERS        = 4.