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 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
python实现的守护进程(Daemon)用法实例
Jun 02 Python
pandas实现选取特定索引的行
Apr 20 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
Django 反向生成url实例详解
Jul 30 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
Oct 11 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
Python TCPServer 多线程多客户端通信的实现
Dec 31 Python
从训练好的tensorflow模型中打印训练变量实例
Jan 20 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 Python
Pycharm Git 设置方法
Sep 15 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
编译问题
2006/10/09 PHP
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
JS注册/移除事件处理程序(ExtJS应用程序设计实战)
2013/05/07 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jquery动感漂浮导航菜单代码分享
2020/04/15 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
AngularJS 与百度地图的结合实例
2016/10/20 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
[45:38]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第一局
2016/03/02 DOTA
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
在Python中的Django框架中进行字符串翻译
2015/07/27 Python
flask-restful使用总结
2018/12/04 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
python实现复制文件到指定目录
2019/10/16 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
2019/10/24 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
宣传策划类求职信范文
2014/01/31 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书
MySQL 视图(View)原理解析
2021/05/19 MySQL
详解Python函数print用法
2021/06/18 Python
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫