python数字转换为大写中文_阿拉伯数字金额转中文大写 (python实现)

分析

实现

# -*- coding: utf-8 -*-

from __future__ import unicode_literals

def convert(n):

units = ['', '万', '亿']

nums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']

decimal_label = ['角', '分']

small_int_label = ['', '拾', '佰', '仟']

int_part, decimal_part = str(int(n)), str(n - int(n))[2:] # 分离整数和小数部分

res = []

if decimal_part:

res.append(''.join([nums[int(x)] + y for x, y in zip(decimal_part, decimal_label) if x != '0']))

if int_part != '0':

res.append('圆')

while int_part:

small_int_part, int_part = int_part[-4:], int_part[:-4]

tmp = ''.join([nums[int(x)] + (y if x != '0' else '') for x, y in zip(small_int_part[::-1], small_int_label)[::-1]])

tmp = tmp.rstrip('零').replace('零零零', '零').replace('零零', '零')

unit = units.pop(0)

if tmp:

tmp += unit

res.append(tmp)

return ''.join(res[::-1])

print convert(0.22)

print convert(0.20)

print convert(0.02)

print convert(1)

print convert(12)

print convert(123)

print convert(1234)

print convert(1230)

print convert(1204)

print convert(1034)

print convert(1004)

print convert(51234)

print convert(51204)

print convert(51034)

print convert(50234)

print convert(50034)

print convert(50004)

print convert(50000)

print convert(12351234)

print convert(12301234)

print convert(12351234)

print convert(12051234)

print convert(10351234)

print convert(10051234)

print convert(10001234)

print convert(10000000)

print convert(10000004)

print convert(10000030)

print convert(10000200)

print convert(10001000)

print convert(10050000)

print convert(12000010001)

print convert(1409.50)

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

输出:

贰角贰分

贰角

贰分

壹圆

壹拾贰圆

壹佰贰拾叁圆

壹仟贰佰叁拾肆圆

壹仟贰佰叁拾圆

壹仟贰佰零肆圆

壹仟零叁拾肆圆

壹仟零肆圆

伍万壹仟贰佰叁拾肆圆

伍万壹仟贰佰零肆圆

伍万壹仟零叁拾肆圆

伍万零贰佰叁拾肆圆

伍万零叁拾肆圆

伍万零肆圆

伍万圆

壹仟贰佰叁拾伍万壹仟贰佰叁拾肆圆

壹仟贰佰叁拾万壹仟贰佰叁拾肆圆

壹仟贰佰叁拾伍万壹仟贰佰叁拾肆圆

壹仟贰佰零伍万壹仟贰佰叁拾肆圆

壹仟零叁拾伍万壹仟贰佰叁拾肆圆

壹仟零伍万壹仟贰佰叁拾肆圆

壹仟万壹仟贰佰叁拾肆圆

壹仟万圆

壹仟万零肆圆

壹仟万零叁拾圆

壹仟万零贰佰圆

壹仟万壹仟圆

壹仟零伍万圆

壹佰贰拾亿零壹万零壹圆

壹仟肆佰零玖圆伍角

————————————————

版权声明:本文为CSDN博主「mattkang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/handsomekang/article/details/52563487

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值