ABAP 四舍五入

需求说明

四舍五入是一个比较常见的需求,这里总结一下。

实现方式

  1. 通过函数HR_NZ_ROUNDING_DECIMALS,通过这种方式的时候遇到了问题,在本地测试时是正常的,在PRD测试时出了问题,调试了很多次没有解决,最后采用了其他方式
DATA: l_data TYPE p DECIMALS 3 VALUE '1.000'.
DATA: l_data1 TYPE p DECIMALS 3.

DATA:lv_zfre LIKE zmmtydanf-zfreje.

CALL FUNCTION 'HR_NZ_ROUNDING_DECIMALS'
  EXPORTING
    value_in                 = l_data
    conv_dec                 = 2
  IMPORTING
    value_out                = l_data1
  EXCEPTIONS
    no_rounding_required     = 1
    decimals_greater_than_10 = 2
    rounding_error           = 3
    OTHERS                   = 4.

cl_demo_output=>display( l_data1 ).
  1. 通过函数ROUND
CALL  FUNCTION  'ROUND' 
   EXPORTING 
     decimals       =  0        " 保留多少位小数 
     input          = lv_input 
     sign           =  'X'      " X 四舍五入   向上取舍 - 向下取舍 (负数也一样) 
   IMPORTING 
     output         = lv_output     " 输出返回结果 
   EXCEPTIONS 
    input_invalid  =  1 
    overflow       =  2 
    type_invalid   =  3 
     OTHERS         =  4 . 
  1. 通过 P类型接收,可以实现四舍五入
DATA : lv_data  TYPE p  DECIMALS  3 . 
DATA : lv_data1  TYPE p  DECIMALS  2 . 

lv_data1  = lv_data . 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值