python将人民币转换大写的脚本代码


Posted in Python onFebruary 10, 2013
def Num2MoneyFormat( change_number ):
    """
    .转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 )
    change_number 支持 float, int, long, string
    """
    format_word = ["分", "角", "元",
               "拾","百","千","万",
               "拾","百","千","亿",
               "拾","百","千","万",
               "拾","百","千","兆"]    format_num = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"]
    if type( change_number ) == str:
        # - 如果是字符串,先尝试转换成float或int.
        if '.' in change_number:
            try:    change_number = float( change_number )
            except: raise ValueError, '%s   can\'t change'%change_number
        else:
            try:    change_number = int( change_number )
            except: raise ValueError, '%s   can\'t change'%change_number
    if type( change_number ) == float:
        real_numbers = []
        for i in range( len( format_word ) - 3, -3, -1 ):
            if change_number >= 10 ** i or i < 1:
                real_numbers.append( int( round( change_number/( 10**i ), 2)%10 ) )
    elif isinstance( change_number, (int, long) ):
        real_numbers = [ int( i ) for i in str( change_number ) + '00' ]
    else:
        raise ValueError, '%s   can\'t change'%change_number
    zflag = 0                       #标记连续0次数,以删除万字,或适时插入零字
    start = len(real_numbers) - 3
    change_words = []
    for i in range(start, -3, -1):  #使i对应实际位数,负数为角分
        if 0 <> real_numbers[start-i] or len(change_words) == 0:
            if zflag:
                change_words.append(format_num[0])
                zflag = 0
            change_words.append( format_num[ real_numbers[ start - i ] ] )
            change_words.append(format_word[i+2])
        elif 0 == i or (0 == i%4 and zflag < 3):    #控制 万/元
            change_words.append(format_word[i+2])
            zflag = 0
        else:
            zflag += 1
    if change_words[-1] not in ( format_word[0], format_word[1]):
        # - 最后两位非"角,分"则补"整"
        change_words.append("整")
    return ''.join(change_words)

Python 把金额小写转换成大写2

功能将小于十万亿元的小写金额转换为大写

def IIf( b, s1, s2):

if b:


return s1

else:


return s2
def num2chn(nin=None):


cs =
('零','壹','贰','叁','肆','伍','陆','柒','捌','玖','◇','分','角','圆','拾','佰','仟',
'万','拾','佰','仟','亿','拾','佰','仟','万')


st = ''; st1=''


s = '%0.2f' % (nin)




sln =len(s)


if sln >; 15: return None


fg = (nin<1)


for i in range(0, sln-3):




ns = ord(s[sln-i-4]) - ord('0')




st=IIf((ns==0)and(fg or (i==8)or(i==4)or(i==0)), '', cs[ns])



+ IIf((ns==0)and((i<>;8)and(i<>;4)and(i<>;0)or fg
and(i==0)),'', cs[i+13])



+ st




fg = (ns==0)


fg = False


for i in [1,2]:




ns = ord(s[sln-i]) - ord('0')




st1 = IIf((ns==0)and((i==1)or(i==2)and(fg or (nin<1))), '', cs[ns])



 + IIf((ns>;0), cs[i+10], IIf((i==2) or fg, '', '整'))



 + st1




fg = (ns==0)


st.replace('亿万','万')


return IIf( nin==0, '零', st + st1)
if __name__ == '__main__':

num = 12340.1

print num

print num2chn(num)
Python 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
对Python中range()函数和list的比较
Apr 19 Python
django 实现电子支付功能的示例代码
Jul 25 Python
python 检查文件mime类型的方法
Dec 08 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
详解python使用turtle库来画一朵花
Mar 21 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
24式加速你的Python(小结)
Jun 13 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
python Kmeans算法原理深入解析
Aug 23 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
python爬取音频下载的示例代码
Oct 19 Python
pydev使用wxpython找不到路径的解决方法
Feb 10 #Python
python的id()函数介绍
Feb 10 #Python
python client使用http post 到server端的代码
Feb 10 #Python
python中查找excel某一列的重复数据 剔除之后打印
Feb 10 #Python
python中的一些类型转换函数小结
Feb 10 #Python
学习python的几条建议分享
Feb 10 #Python
解决谷歌搜索技术文章时打不开网页问题的python脚本
Feb 10 #Python
You might like
SONY SRF-22W(33W)的电路分析和维修案例
2021/03/02 无线电
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
php提取微信账单的有效信息
2018/10/01 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
使用Sticky组件实现带sticky效果的tab导航和滚动导航的方法
2016/03/22 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
js实现简易聊天对话框
2017/08/17 Javascript
简单实现js上传文件功能
2017/08/21 Javascript
JavaScript数组排序reverse()和sort()方法详解
2017/12/24 Javascript
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
2018/07/25 jQuery
VUE写一个简单的表格实例
2019/08/06 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
如何用 Python 处理不平衡数据集
2021/01/04 Python
中学家长会邀请函
2014/02/03 职场文书
2014年创卫实施方案
2014/02/18 职场文书
文明家庭先进事迹材料
2014/05/14 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
2014年店长工作总结
2014/11/17 职场文书
研究生导师评语
2014/12/31 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
二年级数学教学反思
2016/02/16 职场文书
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang