`
f002489
  • 浏览: 273113 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

人民币小写转大写程序,支持到万亿

阅读更多
# -*- coding: gbk -*-
#-------------------------------------------------------------------------------
# Name:        rmb.py
# Purpose:     人名币小写转大写,整数部分处理到万亿,小数部分只处理2位   
# Author:      pushad
#     
# Created:     28-11-2009
# Copyright:   (c) baby 2009
# Licence:     <your licence>
#-------------------------------------------------------------------------------
#!/usr/bin/env python
Number = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
Other  = ["元","角","分","整"]
zi     = ["拾","佰","千","万","亿"]
dw     = ["元","万","亿"]
def main(inum):
    rmb = int(inum)
    xs  = round(inum - int(inum),2)
    rmbc = []
    #处理小数部分只处理到2位小数,不进行四舍五入
    xs = int(xs * 100)
    if xs != 0:
        if xs == 10:
            rmbc.append(Number[xs/10] + Other[1])
        elif xs < 10:
            rmbc.append(Number[xs] + Other[2])
        elif xs > 10:
            if xs%10:
                rmbc.append(Number[xs%10] + Other[2])
            rmbc.append(Number[xs/10] + Other[1])

    #无小数末尾添加‘整’,有小数添加小数描述
    if xs > 0:
        rmbc.append(Number[0])
    else:
        rmbc.append(Other[3])
   
    #处理整数部分
   
    #数字位数
    bit = 1
   
    #零标志位 用以添加 '0'
    zf = 0
   
    #万位标志
    bitw = 0
    #亿位标志
    bity = 0
   
    while rmb:
        if bit % 5 == 0:
            bitw = 0
        if bit % 9 == 0:
            bity = 0
        if rmb%10:           
            #亿位处理 大于9位,遇到第一个非0数字添加'亿'
            if bit >= 9 and bity == 0:
                bity = 1
                rmbc.append(dw[2])      
               
             #万处位理万 大于5位,遇到第一个非0数字添加'万',(9到12位之间单位为'亿')
            if bit >= 5 and (not 9 <= bit <= 12)  and bitw == 0:
                bitw = 1
                rmbc.append(dw[1])                    
               
            if (bit - 1) % 4 == 0:#个位
                rmbc.append(Number[rmb%10])               
            elif (bit - 2) % 4 == 0:#十位
                rmbc.append(Number[rmb%10] + zi[0])
            elif (bit - 3) % 4 == 0:#百位
                rmbc.append(Number[rmb%10] + zi[1])
            elif (bit - 4) % 4 == 0:#千位
                rmbc.append(Number[rmb%10] + zi[2])          
            zf = 0
        else:
            #当前位为0,如果上一位不为0,则添加'零'
            if    bit != 1 and zf == 0:
                rmbc.append(Number[0])
            zf = 1
        #从低位开始取数
        rmb = rmb / 10
        bit = bit + 1
    #处理后翻转列表
    rmbc.reverse()
    return rmbc

if __name__ == '__main__':
    #100,0000,0000
    test = [10,100,1000,10000,1010]
    test2 = [10001000.1,10010000.01,10200000,10200200,10000001]
    test3 = [10000,100000,110000,1000000,1010000,1100000,1110000,10000000,10010000,10100000,11000000]
    test4 = [10000,100000,110000,1000000,1010000,1100000,1110000,23123000360234]
    test5 = [10000100010000.12,11111111.10,1000000000,10000000000,10100000000,23123000360234,23000000000000,1000100000000]

    for num in test2:
        rmbc =  main(num)
        str = ''
        for i in rmbc:
            str = str + i
        print num,":",str.decode('gbk')
分享到:
评论

相关推荐

    android安卓人民币小写转大写程序

    android安卓人民币小写转大写程序APK,可下载到手机安装,以后写人民币大写就很方便啦

    人民币小写转大写的程序.rar

    "人民币小写转大写的程序"就是一个这样的解决方案,用于将诸如“123456.78”这样的金额转换成对应的汉字表示,如“壹拾贰万叁仟肆佰伍拾陆元柒角捌分”。 这个程序通常会涉及以下知识点: 1. **字符串处理**:程序...

    人民币小写金额转大写金额(java版)

    ### 人民币小写金额转大写金额(Java版) #### 概述 本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的...

    人民币小写转大写程序源码

    人民币小写转大写,符合财务规则,1、汉字大写数字金额如零、壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟、万、亿等,一律用正楷或者行书体书写,不得用0、一、二、三、四、五、六、七、八、九、十等简化字代替...

    人民币小写转大写dll

    "人民币小写转大写dll" 是一个特定的DLL文件,其功能专注于将人民币金额从小写形式转换为大写形式,这是在金融和会计软件中常见的需求,因为在中国,正式的财务记录通常要求金额以大写汉字表示,以防止篡改和提高...

    人民币小写转大写(整数支持26位,小数精度6位)

    总的来说,实现人民币小写转大写的功能涉及到了字符串处理、数值转换、条件判断等编程基础,同时也体现了编程解决实际问题的能力。对于开发者来说,理解并实现这样的功能,不仅可以加深对编程语言的理解,也能更好地...

    人民币金额小写转大写

    通过以上分析可以看出,“人民币金额小写转大写”的实现涉及到多个方面的处理,包括数据验证、分段处理、单位添加及特殊字符处理等。这些处理方式不仅确保了输出格式的正确性,也为实际应用提供了重要的技术支持。

    java:人民币小写转大写程序

    可以实现将 10002 转换成壹万零貮元整 10100021转换成壹千零壹拾万零貮拾壹元整 110.00 转换成壹佰壹拾元整 10.01 转换成壹拾元零壹分

    47 人民币小写转大写.rar

    在这个"47 人民币小写转大写.rar"压缩包中,我们很可能找到一个关于如何将人民币金额的小写形式转换为大写的Delphi代码示例或工具。在金融领域,人民币金额的大写形式是法定的会计标准,用于防止因为数字混淆而引发...

    人民币小写转大写

    为方便进行打印票据中的人民币大写,把网上的一段代码装在VCL中,并加入负数处理.其实就是一个函数VCL.在程序中可以这样用edit2.Text:=RMB1.GetBigStr(StrToFloat(edit1.text));或者这样RMB1.small:=StrToFloat(edit1....

    人民币小写转大写JAVA程序.doc

    人民币小写转大写JAVA程序 本文档主要讲解了使用JAVA程序将人民币小写转换为大写的实现方法。该程序使用了BigDecimal类型来处理金额,并使用String数组来存储中文数字和单位。 知识点1:BigDecimal类型在JAVA中的...

    C++Builder 6 人民币小写转大写

    在C++Builder 6中实现人民币小写转大写的程序,主要涉及以下几个知识点: 1. **字符串操作**:首先,我们需要对输入的人民币小写金额进行处理,这通常涉及到字符串的读取、分割和拼接。C++Builder 6提供了字符串类...

    c语言小程序(人民币小写金额转换成大写金额)

    在C语言编程中,开发一个小程序来将人民币的小写金额转换为大写金额是一项常见的任务,尤其在财务软件或银行系统中。这个程序的核心在于理解人民币金额的表示规则,并将其与C语言的数据处理和字符串操作相结合。下面...

    人民币小写转大写(Vc++)

    通过以上步骤,我们可以创建一个简单的Vc++程序,实现在用户界面上输入人民币小写金额,点击按钮后即可实时转换成大写金额。这个功能的实现不仅涉及到基本的字符串操作,还涵盖了汉字编码和用户交互设计,对提升...

    C语言成序设计__实现人民币小写金额与大写金额的转换

    C语言实现人民币小写金额与大写金额的转换 C语言是一种广泛使用的编程语言,具有强大的功能和灵活性。本文中,我们将使用C语言实现人民币小写金额与大写金额的转换。 在中国,人民币的小写金额与大写金额的转换是...

    人民币小写转大写(非常适合银行等财会部门使用)

    在实际操作中,可以使用专门的工具,如提供的"RMB.exe"程序,它是一个用于快速转换人民币小写金额到大写的软件。这类工具能够自动按照上述规则进行转换,大大提高了工作效率,尤其对于处理大量财务数据的银行等机构...

    高到垓位低到毫的 人民币金额小写转大写

    可以实现高到垓位低到毫的 人民币金额小写转大写 C#完整的程序。

    人民币 小写 转换 大写 源代码 C#

    本文将详细讲解如何使用C#语言编写一个简单的人民币小写到大写的转换源代码,适用于Visual Studio 2008开发环境。 首先,我们需要了解人民币大写的规则。人民币大写包括:壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、...

    人民币金额小写转换大写

    在IT行业中,尤其是在财务软件开发或者处理金融数据时,经常需要将人民币金额的小写形式转换为大写形式,因为在中国,大写数字常用于正式的财务文档,如支票、合同等,以防止篡改。这个任务涉及到字符串处理、字符...

    Delphi XE5/XE6人民币小写转大写(android&Ios)

    对于核心功能——人民币小写转大写,这涉及到字符串处理和数字格式化。在Delphi中,可以使用内置的"Format"函数或者自定义函数来实现。例如,小写金额“123456.78”转换成大写,需要将每个数字映射到相应的汉字字符...

Global site tag (gtag.js) - Google Analytics