python-数字金额转大写中文汉字金额

复制代码
# 四舍五入保留两位小数
def decimal_money(money):
    format_money = Decimal(money).quantize(Decimal("0.00"), rounding=ROUND_HALF_UP)
    return format_money

# 将数字转中文大写
def num_to_cn_upper(amount):
    if int(amount) == 0:
        return "零元整"
    units = ['', '', '', '', '', '', '', '', '亿']
    digits = ['', '', '', '', '', '', '', '', '', '']
    decimals = ['', '']

    integer_part = int(amount)
    decimal_part = decimal_money(amount - integer_part)
    result = ''
    # 处理整数部分
    integer_part_str = str(integer_part)
    for i, digit in enumerate(integer_part_str):
        if digit != '0':
            result += digits[int(digit)]
            result += units[len(integer_part_str) - i - 1]
        else:
            # 如果前一位不是零,则添加零
            if i > 0 and integer_part_str[i - 1] != '0':
                result += digits[0]
    # 处理小数部分
    if decimal_part > 0:
        decimal_part_str = str(decimal_part)[2:]
        for i, digit in enumerate(decimal_part_str):
            result += digits[int(digit)]
            result += decimals[i]
    else:
        result += ""
    return result
复制代码

 

posted @   Deepmemory  阅读(271)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示