编写一函数,将数字金额转换为中文大写金额。最大金额到“亿”,最小金额到“分”(如:数字金额为1024.10,对应中文金额:壹仟零佰贰拾肆元壹角零分),数字中文大写对应为:零壹贰叁肆伍陆柒捌玖,金额单位大写对应为:亿、万、仟、佰、拾、元、角、

动态 未结 0 124
小小草
小小草 LV1 2023年9月23日 23:20 发表
def num2chinese(num): chinese_num = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'] chinese_unit = ['分','角','元','拾','佰','仟','万','亿'] integer_part, decimal_part = str(num).split('.') integer_part = integer_part[::-1] res = '' # 处理小数部分 if decimal_part != '00': res += chinese_num[int(decimal_part[1])] + chinese_unit[1] + chinese_num[int(decimal_part[0])] + chinese_unit[0] else: res += '零' + chinese_unit[0] # 处理整数部分 for i in range(len(integer_part)): if integer_part[i] == '0': if i == 0 or (i+4)%8 == 0: res += chinese_num[0] else: res += chinese_num[int(integer_part[i])] + chinese_unit[(i+3)%8] if (i+4)%8 == 0: res += chinese_unit[6] if i == 7: break # 去掉末尾的“零” while res[-1] == '零': res = res[:-1] # 加上“元”和“整” if res[-1] == '元': res += '整' else: res += '元' return res[::-1] num = float(input()) print('大写金额:{}'.format(num2chinese(num)))
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复