• ABAP 四舍五入函数


    ABAP 四舍五入函数

    ABAP 中处理数据的函数方法很多,其中涉及到四舍五入的有两个(可能还有更多):ROUNDHR_NZ_ROUNDING_DECIMALS

    前者位于Basis功能开发包 SZME 里面,在标准中用于计量单位的计算;

    后者主要用于HR模块,位于 PB43 开发包,处理HR模块中的主数据。

     

    HR_NZ_ROUNDING_DECIMALS 函数可以直接输入数值,然后在 CONV_DEC 参数中输入需要保留的小数点即可输出。

    ROUND 函数则有点灵活,可以通过 SIGN 参数( ‘+’,’-’ )控制向上取舍,或者向下取舍。

    例如:

    输入 88.54350 ,如果SIGN = ‘+’ ,保留2位小数,会得到: 88.55000;如果 SIGN = ‘-’,会得到:88.54000

    输入 -88.54350,如果SIGN = ‘+’ ,保留2位小数,会得到: -88.54000;如果 SIGN = ‘-’,会得到:-88.55000

    查看示例:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    DATA : dat  TYPE p DECIMALS 9 VALUE '12.5445' ,
           dat1 TYPE p DECIMALS 9 .
      
    DATA   dat2 TYPE p DECIMALS 9 VALUE '12.540'.
      
    * 方法一
    CALL FUNCTION 'HR_NZ_ROUNDING_DECIMALS'
      EXPORTING
        value_in                 = dat
        conv_dec                 = 2      " 设置保留几位小数
      IMPORTING
        value_out                = dat1
      EXCEPTIONS
        no_rounding_required     = 1
        decimals_greater_than_10 = 2
        rounding_error           = 3
        OTHERS                   = 4.
      
    WRITE: /'方法一(保留2位小数):'.
    WRITE: / dat, ' => ' ,dat1.
    WRITE: / '----------------------------------------------------'.
      
    * 方法二
    CALL FUNCTION 'ROUND'
      EXPORTING
        decimals      = 0       " 保留多少位小数
        input         = dat2
        sign          = '+'     " + 向上取舍 - 向下取舍 (负数也一样)
      IMPORTING
        output        = dat1    " 输出返回结果
      EXCEPTIONS
        input_invalid = 1
        overflow      = 2
        type_invalid  = 3
        OTHERS        = 4.
      
    WRITE: /'方法二(保留0位小数):'.
    WRITE: / dat2, ' => ' ,dat1.
    WRITE: / '----------------------------------------------------'.
  • 相关阅读:
    Quartz.Net在windows服务中的使用
    mysql之group by,order by
    mysql之select,insert,delete,update
    win8.1安装VMware Error:This product may not be installed on a comuputer that has Microsoft HyperV installed
    mysql之创建数据库,创建数据表
    深入浅出空间索引:2
    地图点聚合优化方案
    地理围栏算法解析
    GeoHash核心原理解析
    Mongodb地理空间索引
  • 原文地址:https://www.cnblogs.com/springzt/p/4320494.html
Copyright © 2020-2023  润新知