人民币金额打印
2013-12-06 12:38
162 查看
#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
相关文章推荐
- Python 练习 人民币金额打印
- Python入门练习0009:人民币金额打印
- 人民币金额打印 分类: python 小练习 python基础学习 2013-12-06 12:38 336人阅读 评论(0) 收藏
- 人民币金额大写 在与财务相关的应用中,经常会用到人民币金额的大写,比如发票的打印程序。 本题的任务是:从键盘输入一个十亿以内的正整数(int类型),把它转换为人民币金额大写(不考虑用户输入错误
- 人民币金额打印
- 人民币金额大写
- 把数字金额转换成人民币大写[原创]
- ABAP--将数字金额转换为人民币大写字符串
- PHP人民币金额转大写实例代码
- 一份银行流水数据,因打印模糊导致部分金额不清楚。
- PHP将数字金额转化为中文人民币大写
- C#转换人民币大写金额
- 用python实现把数字人民币金额转换成大写的脚本程序
- 在excel中人民币小写金额自动转大写金额
- 易语言将数值转换为人民币金额的简体或繁体大写形式
- PHP人民币金额数字转中文大写的函数代码
- PHP将数字金额转化为中文人民币大写
- 【叶子函数分享十八】人民币小写金额转大写
- C# 日期处理 转换人民币大小金额
- 在Excel中将小写金额转换成人民币