根据小数位递进的(ZTRANSLATE_TO_NUM)
来源:互联网 发布:qq单向好友软件 编辑:程序博客网 时间:2024/06/06 07:44
FUNCTION ztranslate_to_num.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(I_NUM) TYPE ZTRANSLAT
*" REFERENCE(I_GZ) TYPE ZEXH
*" REFERENCE(I_WS) TYPE ZEXH
*" EXPORTING
*" REFERENCE(O_NUM) TYPE ZTRANSLAT
*"----------------------------------------------------------------------
DATA o_char TYPE string.
DATA j_char TYPE string.
DATA:m_char TYPE string,
n_char TYPE string.
DATA: lv_qs TYPE c,
lv_xs TYPE char20,
lv_zs TYPE ztranslat,
lv_jia TYPE ztranslat,
lv_jiac TYPE char20,
lv_jw TYPE i,
lv_dec TYPE ztranslat,
lv_de TYPE char20.
DATA:gv_xs TYPE ztranslat.
DATA l_ws TYPE i.
DATA l_gz TYPE i.
gv_xs = frac( i_num ).
lv_zs = trunc( i_num ).
DATA la TYPE zexh.
DATA lb TYPE zexh.
DATA li TYPE i.
DATA ln TYPE i.
DATA lm TYPE i.
DATA lzs1 TYPE string.
DATA lzs2 TYPE string.
DATA lzs3 TYPE string.
la = i_gz.
lb = i_ws.
CONDENSE la NO-GAPS.
CONDENSE lb NO-GAPS.
l_gz = la.
l_ws = lb.
IF l_ws = -1.
lzs1 = lv_zs.
SPLIT lzs1 AT '.' INTO lzs1 lzs2.
CONDENSE lzs1.
li = strlen( lzs1 ).
IF li = 1.
"lv_dec = lv_zs.
ELSE.
ln = li - 1.
lzs2 = lzs1+0(ln).
lzs3 = lzs1+ln(1).
lm = lzs3.
IF lm > la.
lm = 10.
ELSE.
lm = 0.
ENDIF.
lv_zs = lzs2 * 10 + lm.
ENDIF.
CLEAR:lv_dec.
ELSEIF l_ws = -2.
lzs1 = lv_zs.
SPLIT lzs1 AT '.' INTO lzs1 lzs2.
CONDENSE lzs1.
li = strlen( lzs1 ).
IF li <= 2.
"lv_dec = lv_zs.
ELSE.
ln = li - 2.
lzs2 = lzs1+0(ln).
lzs3 = lzs1+ln(1).
lm = lzs3.
IF lm > la.
lm = 100.
ELSE.
lm = 0.
ENDIF.
lv_zs = lzs2 * 100 + lm.
ENDIF.
CLEAR:lv_dec.
ELSE.
* IF l_gz = 0 AND l_ws = 0.
*
* j_char = i_num.
* SPLIT j_char AT '.' INTO m_char n_char.
* CONDENSE m_char NO-GAPS.
* o_num = m_char.
* ELSE.
WRITE gv_xs TO lv_xs NO-GROUPING.
CONDENSE lv_xs.
lv_jw = l_ws + 1.
l_ws = l_ws + 2.
lv_qs = lv_xs+l_ws(1).
lv_de = lv_xs+0(l_ws).
REPLACE ALL OCCURRENCES OF ',' IN lv_de WITH '.'.
lv_dec = lv_de.
lv_jiac = lv_jia.
CONDENSE lv_jiac.
IF lv_jw = '1'.
lv_jw = '0'.
ENDIF.
lv_jiac+lv_jw(1) = '1'.
REPLACE ALL OCCURRENCES OF ',' IN lv_jiac WITH '.'.
lv_jia = lv_jiac.
IF lv_qs > l_gz.
lv_dec = lv_dec + lv_jia.
ENDIF.
ENDIF.
o_num = lv_zs + lv_dec.
* CONDENSE o_num NO-GAPS.
* SHIFT o_num RIGHT DELETING TRAILING '0' .
* o_char = o_num.
* CONDENSE o_char NO-GAPS.
* SHIFT o_char RIGHT DELETING TRAILING '0' .
* o_num = o_char.
* ENDIF.
* SHIFT o_num RIGHT DELETING TRAILING '.' .
ENDFUNCTION.
- 根据小数位递进的(ZTRANSLATE_TO_NUM)
- 根据指定的保留小数位进行四舍五入
- 敏捷看板的递进
- EF 小数位的保留
- Android 小数位的问题
- 数字在排序数组中出现的次数 (递进的方法整理)
- 软件实现临界区互斥的方法总结思考(四种算法的递进推导)
- ASP.NET系统开发(一):层层递进之SQLHelper助手类的持续优化
- ASP.NET系统开发(一):层层递进之SQLHelper助手类的持续优化
- ASP.NET系统开发(一):层层递进之SQLHelper助手类的持续优化 .
- ASP.NET系统开发(一):层层递进之SQLHelper助手类的持续优化
- ASP.NET系统开发(一):层层递进之SQLHelper助手类的持续优化
- 递进--求两个数的公约数
- 阶梯型递进模型算法的实现
- 层层递进Struts1(八)之总结
- 层层递进Struts1(六)自定义转换器
- 层层递进Struts1(七)详解DispatchAction
- 计算出的多小数位的数值控制小数位的方法
- 欢迎使用CSDN-markdown编辑器
- python eventlet库 之一
- linux 查看版本
- Git
- .Net 4.0 之 Dynamic 动态类型
- 根据小数位递进的(ZTRANSLATE_TO_NUM)
- Excel 制作甘特图(多图)
- Spring源码解析 ---- 循环依赖
- C/C++ Keywords
- Android 获取当天零点的毫秒值并将时间格式化
- 在Mac osx使用ADT Bundle踩过的坑
- http 301 和 302的区别
- android开发之多线程断点下载
- MongoDB 3.0新增特性一览