收藏网站

Python 数字转人民币大写

2021年2月1日 09:56 Python 3765

财务数据汇总票据的时候,常常需要把阿拉伯数字表示的金额转换成人民币大写。

def get_format(currency):
    digit = [u'零', u'壹', u'贰', u'叁', u'肆', u'伍', u'陆', u'柒', u'捌', u'玖']
    weight = [u'圆', u'拾', u'佰', u'仟', u'万', u'拾', u'佰', u'仟']
    Z = [(u'零仟', u'零佰', u'零拾', u'零零零', u'零零', u'零万', u'零圆'), (u'零', u'零', u'零', u'零', u'零', u'万', u'圆')]
    currency = round(currency)
    num = str(abs(currency))  # 整数转换成字符串
    s = u'负' if currency < 0 else ''
    for i, x in enumerate(num):
        s += digit[int(x)] + weight[len(num) - i - 1]

    for z, v in zip(Z[0], Z[1]):
        s = s.replace(z, v)
    return '人民币' + s + '整'

 

热点推荐

扫码添加微信