人民币金额打印

原创 2013年12月06日 12:38:38
#coding:utf-8

#数字大写对应表
bigFormat={'0':u'零','1':u"壹",'2':u"贰",'3':u'叁','4':u'肆','5':u'伍','6':u'陆','7':u'柒','8':u'捌','9':u'玖'}

unit =[u'仟',u'佰',u'拾','']

#测试数据列表
digits=[1987654321,87654321,80014321,80000000,1101234,6000,54321,4321,1021,1002,1100,1206,300,301,11,0,2,9,87654,-807654,-1,-9]

#以中文形式读取四位数据
def getFournum(n):
    if n=='0':
        return u'零'
    r=''

    for i,j in enumerate(str(n)):
        j=bigFormat[j]+unit[i-len(str(n))]
        r+=j
    r=r.replace(u'零仟',u'零')
    r=r.replace(u'零佰',u'零')
    r=r.replace(u'零拾',u'零')
    r=r.replace(u'零零',u'零')
    #r=r.replace(u'壹拾',u'拾') 如果将此句加上,则110读为:壹佰拾,建议去掉该语句
    r=r.rstrip(u'零')

    return r

def result(n,l,elem):
    if n==1:
        r=getFournum(elem)

        return r
    if n==3:
        r= getFournum(elem)+u'亿-' #在亿后面增加一个标示:"-"
        #递归调用result函数,获取 以 "万"结尾的数字
        r+=result(n-1,l,l[1])
        return r
    if n==2:
        r=getFournum(elem)+u'萬-'
        #递归调用result函数,获取末位的4个数字
        r+=result(n-1,l,l[-1])
        return r

#从左至右将数字拆分成4个元素,得到
def getdigitlist(d):
    l=[]
    for i in range(0,len(d),4):
        l.append(d[i:i+4][::-1])
    return l[::-1]

if __name__ == '__main__':

    for digit in digits:
        #flag标示是否是负数,默认0,表示不是负数;flag=-1,代表是负数
        flag = 0
        r=''
        if digit<0:
            digit=abs(digit)
            flag=-1

        elementlist=getdigitlist(str(digit)[::-1])
        print elementlist
        for item in elementlist:
            if flag==-1:
                print u'负'+result(len(elementlist),elementlist,item)+u'圆'
            else:
                print result(len(elementlist),elementlist,item)+u'圆'
            break




相关文章推荐

人民币 金额 大小写转化 PB

  • 2015年11月18日 12:36
  • 3.59MB
  • 下载

人民币金额小写转换大写工具

  • 2014年07月14日 14:21
  • 626KB
  • 下载

SQL人民币小写金额转大写

--1、人民币小写金额转大写(第一版) ==================================================================== -- Title:...
  • tlammon
  • tlammon
  • 2016年04月05日 22:03
  • 1103

人民币小写金额转大写

  • 2012年05月31日 10:13
  • 6KB
  • 下载

java将金额字符串取整转为人民币大写形式(疯狂java讲义164页)

import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; public class Num...

人民币金额大写数字转换器

  • 2013年10月31日 13:30
  • 629KB
  • 下载

人民币金额大小写转换控件

  • 2006年03月16日 00:00
  • 170KB
  • 下载

java编程人民币金额大写问题

自己编写的方法 public class moneyTrans { /** * @param args */ static String[] nums={"零","壹","贰","叁"...
  • aerchi
  • aerchi
  • 2012年04月07日 09:17
  • 2387

人民币大写金额转换DLL库

  • 2011年08月09日 21:56
  • 17KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:人民币金额打印
举报原因:
原因补充:

(最多只允许输入30个字)