要求如下 :万元以上的 需要用缩写后尾* 如:

123765.39 -------1 hndrd 23 thsnd 7 hndrd 65 and 39/100**********************************************

万元以下 后尾*

136.38 ------One Hundred Thirty-Six and 39/100***************************************************

万元以上的 自己写算法解决;万元以下的 利用系统函数再加以转换

FUNCTION 'SPELL_AMOUNT'

这个函数 在有小数位情况下转换出来的不是预期的数 需要转换整数 转换后 再把大小写用算法搞定即可

需要注意的 地方 sring 的赋值时候 不支持 +() 这种方法

*&---------------------------------------------------------------------*
*& Report  ZT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zt.
*DATA text TYPE string.
DATA outd(256).
DATA outc(256).
DATA outa(256).
DATA outb(256).
DATA out TYPE string.
DATA str TYPE TABLE OF string WITH HEADER LINE.
DATA strchar(20).
DATA outt(200) .
DATA fen(3).

DATA : BEGIN OF itab,
a(3),
b(3),
c(3),
d(3),
END OF itab..

DATA: long TYPE i,banlance TYPE i..
PARAMETERS: text(18).

*text = '123456789.99'.

SPLIT text AT '.' INTO text fen.
itab = text.
long = STRLEN( text ).

* banlance = 3 - long mod 3.

IF long > 5.
  banlance = 12 - long.

WRITE / itab.
  IF banlance <> 0.
    SHIFT text BY banlance PLACES RIGHT.
  ENDIF.
  itab = text.

WRITE / itab.

*$123,456,789.56
*
*1hndrd 23 mil 4 hndrd 56 thsnd 7 hndrd 89 and 56/100

IF itab-a <> '   '.
    PERFORM there USING itab-a outa.
    CONCATENATE  outa out INTO out SEPARATED BY ' '.
  ENDIF.

IF itab-b <> '   '.
    PERFORM there USING itab-b outb.
    CONCATENATE out outb  'mil'  INTO out SEPARATED BY ' '.
  ENDIF.

IF itab-c <> '   '.
    PERFORM there USING itab-c outc.
    CONCATENATE  out outc 'thsnd'  INTO out SEPARATED BY ' '.
  ENDIF.

IF itab-d <> '   '.
    PERFORM there USING itab-d outd.
    CONCATENATE  out  outd INTO out SEPARATED BY ' '.
  ENDIF.

WRITE: / outa ,outb ,outc,outd.

WRITE: / out.
ELSE.
  DATA outn TYPE spell.

CALL FUNCTION 'SPELL_AMOUNT'
    EXPORTING
      amount    = text
      currency  = ' '
      filler    = ' '
      language  = sy-langu
    IMPORTING
      in_words  = outn
    EXCEPTIONS
      not_found = 1
      too_large = 2
      OTHERS    = 3.
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

out = outn-word.
WRITE: / out.

SPLIT out AT space INTO TABLE str.
  CLEAR out.

DATA pos TYPE i.
  DATA char.

LOOP AT str.
    strchar = str.
    CALL FUNCTION 'STRING_UPPER_LOWER_CASE'
      EXPORTING
        delimiter = 'A'
        string1   = strchar
      IMPORTING
        string    = strchar
      EXCEPTIONS
        not_valid = 1
        too_long  = 2
        too_small = 3
        OTHERS    = 4.
    IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.

SEARCH strchar FOR '-'.

IF sy-subrc = 0.
      pos = sy-fdpos + 1.

char = strchar+pos(1).
      TRANSLATE char  TO UPPER CASE.

strchar+pos(1) = char.
    ENDIF.
    str =  strchar.
    CONCATENATE  out str
                INTO out SEPARATED BY space.

ENDLOOP.

ENDIF.
SHIFT fen BY 1 PLACES RIGHT.
CONCATENATE out   ' and'  fen  '/100' INTO out .

outt = '*************************************************************************************'.
long = STRLEN( out ).

outt(long) = out.
WRITE: / outt.

*&---------------------------------------------------------------------*
*&      Form  there
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->IN         text
*      -->OUT        text
*----------------------------------------------------------------------*
FORM there USING in  out
.
  DATA len TYPE i.
  len = STRLEN( in ).

out = in(1).
  IF out <>  ' '.
    out = '          '.
    len = STRLEN( out ).
    out+0(1) = in(1).
    out+1(7) = ' hndrd '.
    out+8(2) = in+1(2).

ELSE.
    out = in.
  ENDIF.

* if len <> 3.
* out = in .
* else .
* out = in(1).
* out+1(3) = ' bai '.
* out+4(2) = in+1(2).
*
*
* endif.

ENDFORM.                    "there

关于 英文的 金额转换相关推荐

  1. php 英文小写变大写,PHP_PHP英文字母大小写转换函数小结,每个单词的首字母转换为大写 - phpStudy...

    PHP英文字母大小写转换函数小结 每个单词的首字母转换为大写:ucwords() $foo = 'hello world!'; $foo = ucwords($foo);             // ...

  2. 数字小写到英文大写的转换

    数字小写到英文大写的转换 日期:2004年8月13日 作者:gaojian 人气: <script src="../Hits.asp?ArticleID=2922" type ...

  3. php 英文小写变大写,PHP英文字母大小写转换函数

    例1,每个单词的首字母转换为大写:ucwords() 复制代码 代码示例: $foo = 'hello world!'; $foo = ucwords($foo);             // He ...

  4. c#金额转换成中文大写金额

    c#金额转换成中文大写金额 原文:c#金额转换成中文大写金额 2018-08-24 转别人 c#金额转换成中文大写金额 /// <summary>/// 金额转换成中文大写金额/// &l ...

  5. 金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-(一千零一拾一元整)输出。...

    程序代码如下: package cn.itcast.framework.interview;import java.text.NumberFormat; import java.util.HashMa ...

  6. 小写数字转大写_不得不说的Excel小技巧:设置单元格格式将小写金额转换成大写...

    大家好,我是小秋,近期一段时间比较忙,没有在今日头条上更新原创文章了.希望朋友们多多见谅,下面与大家分享一个Excel实用小技巧:如何设置单元格格式将小写金额转换成大写? 1.应用场景 在报销单.收据 ...

  7. php 清除英文字母,PHP英文字母大小写转换函数小结

    PHP英文字母大小写转换函数小结 发布于 2015-01-23 10:54:41 | 143 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  8. php数字转换百千万,PHP数字金额转换成中文大写显示

    整个功能其实不难,只是还算挺实用,所以记一下哈,其他编程语言转换一下也是能可以的! 思路:把传过来的金额转换成整数和小数两部分,再对其分别进行转换处理 代码附上: function moneyToSt ...

  9. C语言-英文字母倒序转换

    C语言-英文字母倒序转换 题目来源 代码 题目来源 厦门大学在线评测系统 2018级C语言程序设计实验课1368号试题 代码 //将字符串里的英文字母换成26个英文字母中序号相反的,第一个换成倒数第一 ...

最新文章

  1. 数学帅才克莱因及其启示
  2. C++ 的复制构造函数
  3. 自律到极致-人生才精致:第13期
  4. pip指定包的安装路径
  5. 开头th_是什么文件_Python文件读写最详细的讲解
  6. 使用Gradle构建Monorepo项目
  7. [转]关于HTTP服务器每个客户端2个连接的限制
  8. 第一个 Win32 窗口程序
  9. Vue 强制刷新组件
  10. Vegas的新功能——触摸编辑
  11. 实现微信小程序开发的基本步骤
  12. mmorpg游戏服务器技能系统设计,对MMORPG职业技能设计的一些思考和方法总结
  13. r5 5600g和5600x的区别 选哪个好
  14. BCD码和ASCII码的相互转换
  15. HTML系统学习(1)
  16. 女人要记住的亦舒75句话
  17. 还在为乱七八糟的桌面而忧桑吗
  18. 职业生涯自我规划五步
  19. python新闻聚合_基于Python的新闻聚合系统网络爬虫研究
  20. 使用Jquery、HTML、CSS、JS实现下拉菜单列表

热门文章

  1. 钢铁电商平台的Docker容器云平台建设实践
  2. Mac OS 如何让窗口显示在最前边,(用于录制屏幕提醒,以及屏幕分享,应用分享的UI窗口解决)
  3. 敬业签苹果ios手机便签APP里的录音怎么转文字?
  4. go build command-line-arguments: copying /tmp/go-build042781492/b001/exe/a.out: open main: text file
  5. React Native腾讯广告优量汇广点通广告SDK集成
  6. 11.2 NOIP模拟赛 (morning)
  7. vb语法-Clng()函数作用及用法
  8. 安全帽识别系统-智慧船舶的守夜人
  9. 怎样解决photoshop暂存盘已满的问题?
  10. 【转载】Python3.6安装报错 configure: error: no acceptable C compiler found in $PATH