博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABAP 四舍五入函数
阅读量:7085 次
发布时间:2019-06-28

本文共 1396 字,大约阅读时间需要 4 分钟。

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
: /
'----------------------------------------------------'
.

 

转载于:https://www.cnblogs.com/springzt/p/4320494.html

你可能感兴趣的文章
Android线程——StackTraceElement线程运行栈的探索
查看>>
jQuery的属性,事件及操作
查看>>
Kotlin 读书笔记
查看>>
康士伯数据牵手阿里云,支持亚洲能源行业数字化升级
查看>>
运维精简工具箱
查看>>
SpringBoot 整合redis实现缓存 记录@CachePut值为1
查看>>
密码怎么设才好?一条标准就够了
查看>>
02.面向对象的六大原则
查看>>
浅谈如何提高自动化测试的稳定性和可维护性(pytest&allure)
查看>>
编程语言 | R代码风格
查看>>
如何实现伸缩 (折叠) 报表?
查看>>
消息队列1:RabbitMQ解析并基于Springboot实战
查看>>
Android 实现显示密码和隐藏密码
查看>>
nginx 负载均衡 配置
查看>>
SpringBoot+Vue前后端分离,使用SpringSecurity完美处理权限问题(一)
查看>>
ubuntu 安装监控系统软件工具netdata
查看>>
合约注意事项
查看>>
hibernate alias 使用
查看>>
Oracle之基础查询(一)
查看>>
AI学习笔记之——强化学习(Reinforcement Learning, RL)
查看>>