`
Jack Wu
  • 浏览: 896636 次
  • 来自: ...
社区版块
存档分类
最新评论

将数字金额转换为人民币大写字符串

 
阅读更多

function z_convert_numeric_to_chinese.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(PI_MONEY) LIKE  BSEG-DMBTR
*"  EXPORTING
*"     REFERENCE(PO_CHINESE)
*"  EXCEPTIONS
*"      WRONG_MONEY
*"----------------------------------------------------------------------
  if pi_money = 0.
    po_chinese = '零'.
    exit.
  endif.
  data:money_str(13).
  money_str = pi_money.
  if money_str cn '0123456789. '.
    raise wrong_money.
  endif.
  data:i type i.
  if money_str cs '.'.
    i = sy-fdpos + 1.

    money_str+sy-fdpos = money_str+i.
  endif.
  condense money_str no-gaps.
  data:units_off type i,
       curnt_off type i.
  data:lastd type n,curntd type n.
  data:cword(2),weight(2).
  data:units(30) value '分角元拾佰仟万拾佰仟亿拾佰仟万',
       digts(20) value '零壹贰叁肆伍陆柒捌玖'.
* clear:po_chinese,units_off.
  lastd = 0.
  curnt_off = strlen( money_str ) - 1.
  while curnt_off >= 0.
    curntd = money_str+curnt_off(1).
    i = curntd * 2.
    cword = digts+i(2).

    weight = units+units_off(2).


    i = units_off / 2.
    if curntd = 0.             "Current digit is 0
      if i = 2 or i = 6 or i = 10.
        clear:cword.
        if curnt_off = 0.
          clear:weight.
        endif.
      elseif lastd = 0.
        clear:cword,weight.
      else.
        clear:weight.
      endif.
    endif.
    concatenate cword weight po_chinese into po_chinese.
    lastd = curntd.
    subtract 1 from curnt_off.
    add 2 to units_off.
  endwhile.
  if po_chinese ns '分'.
    concatenate po_chinese '整' into po_chinese.
  else.
    cword = po_chinese.
    if cword = '零'.
      shift po_chinese by 2 places.
    endif.
  endif.
endfunction. 



分享到:
评论

相关推荐

    mysql函数,将数字金额转成人民币大写

    在MySQL数据库中,有时我们需要将数字金额转换成人民币的大写形式,这在财务报表或会计系统中非常常见。为了实现这一需求,我们可以自定义一个函数或者利用现有的字符串处理函数。以下是一个关于如何在MySQL中实现这...

    Qt实现人民币大写

    5. **显示结果**:最后,使用Qt的`QString`类进行字符串操作,构建完整的人民币大写金额,并将其显示在界面上,如`QLabel`控件。 6. **异常处理**:虽然题目没有提及用户输入错误的情况,但良好的编程习惯是应考虑...

    阿拉伯数字转换为人民币大写

    首先,我们要理解阿拉伯数字(0-9)和对应的人民币大写字符关系。阿拉伯数字0对应的是中文的大写零(零),1对应一(壹),2对应二(贰),3对应三(叁),4对应四(肆),5对应五(伍),6对应六(陆),7对应七...

    java实现数字转换人民币中文大写工具

    在使用该工具时,只需将数字字符串传递给 capitalization 方法,该方法将返回转换后的大写字符串。例如,输入 "825.45" 将返回 "捌佰贰拾伍元肆角伍分"。 Java 实现数字转换人民币中文大写工具是一个非常实用的工具...

    数字转换成金额大写

    要实现这种转换,我们可以编写一个函数,接收一个浮点数或整数作为参数,然后返回对应的中文大写字符串。函数可以分为几个步骤: 1. **预处理**:检查输入的数字是否合法,如是否超出合理范围(比如不能超过...

    数字金钱转换成中文大写

    通过这样的程序,我们可以快速、准确地将任意数字金额转换为中文大写形式,满足财务报告和相关业务的需求。 四、总结 数字金钱转换成中文大写是金融领域必备的基本技能,它遵循特定的规则,包括数字与中文字符的...

    小写人民币转大写ACCESS函数

    通过上述代码实现,可以方便地将数字格式的金额转换为汉字大写形式,适用于各种财务管理场景。此外,还对一些特殊情况进行了解释和处理,确保输出的汉字大写金额符合中文习惯。这对于提高财务文档的专业性和准确性...

    pb_函数_将小写数字转换成大写数字

    4. **返回结果**:循环结束后,`ls_return`变量中存储的就是转换后的中文大写字符串,将其作为函数的返回值。 #### 示例代码 ```pb String ls_num[] = {'һ', '二', '三', '四', '五', '六', '七', '八', '九', '...

    BAT批处理脚本-格式转换-人民币金额小写转大写.cmd.zip

    4. **字符串处理**:脚本需要对输入的金额字符串进行拆分、比较和组合,以便将小写金额转换为大写汉字。这可能涉及到`SUBSTRING`、`ECHO`等命令,以及使用变量存储和操作字符串。 5. **字符映射**:人民币金额的大小...

    人民币大写金额转数字源码

    本文将详细讲解如何实现“人民币大写金额转数字”的算法,主要基于C#编程语言。 首先,我们需要了解人民币大写金额的基本规则。人民币大写金额由“零”、“壹”、“贰”、“叁”、“肆”、“伍”、“陆”、“柒”、...

    人民币大写金额转换器,输入数字,直接变成人民币大写汉字

    本话题主要涉及如何将阿拉伯数字形式的金额转换为对应的人民币大写汉字。 在进行这种转换时,我们需要了解人民币大写金额的基本规则。以下是一些关键知识点: 1. **基本汉字单位**:人民币的大写金额通常包括以下...

    ABAP 金额大写转换函数实现

    sap abap 创建函数将阿拉伯金额数字变成人民币大写汉字,内涵具体实现代码

    java 数字转化为人民币大写

    在金融、会计等场景下,经常需要将数字金额转换为人民币大写的格式,以满足正式文档、合同或发票的需求。本文将详细介绍如何使用Java实现这一功能,支持一亿以内的数字转化,确保准确无误地进行金额的汉字表示。 ##...

    将金额转换成大写金额 封装类 及 例子

    在IT行业中,尤其是在财务软件开发或者银行系统的编程中,经常需要将数字金额转换为中文大写的表示形式,以便于财务报告、单据打印等场景。本文将深入探讨如何使用C#语言来封装一个类,实现将金额转换为大写金额的...

    FastReport小写金额转大写

    在财务文档或正式报告中,将数字金额转换成大写格式是一种常见的规范要求,尤其在中国。FastReport提供了一种方法,通过编写自定义函数来实现这一转换。本例中的代码展示了一个具体的实现过程,用于将货币类型的数值...

    excel表格中负数的人民币金额怎么转换成大写.docx

    本节将提供一个可供负数、正数使用的函数公式来将人民币金额转换为大写。 公式解析 `=IF(A1=0,"",SUBSTITUTE(SUBSTITUTE(REPT("负",A1),NUMBERSTRING(ABS(TRUNC(A1)),2),SUBSTITUTE(TEXT(RIGHT(RMB(A1),2),"元...

    用JS将人民币金额转换成大写

    例如,我们可以先将金额字符串转换为数字,然后将整数部分转化为对应的中文大写: ```javascript function integerToChinese(num) { let chineseNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '...

    人民币大写金额转换DLL库

    对于人民币大写金额转换的DLL库,可能包括如`ConvertToChineseAmount(int amount)`这样的函数,输入阿拉伯数字的金额,返回对应的汉字大写字符串。 6. **使用方法**:在开发过程中,程序员需要将该DLL库引入到项目...

    jasperIreport +Ireport实现金额大写

    Ireport实现金额大写 在irport里面写script脚本 完成转换

Global site tag (gtag.js) - Google Analytics