1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python数字金额转换为中文大写金额

python数字金额转换为中文大写金额

时间:2024-01-30 14:53:06

相关推荐

python数字金额转换为中文大写金额

python数字金额转换为中文大写金额

编写一函数,将数字金额转换为中文大写金额。设最高位考虑到亿,最低位考虑到分(如:数字金额为1023.445,转换为中文大写金额为:壹仟零佰贰拾叁元肆角伍分)。输入:一个数字金额(如:1234.5),输出:中文大写金额(壹仟贰佰叁拾肆元伍角零分)。

from decimal import Decimaldef num2money_format(change_number):""".转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 )change_number 支持 float, int, long, string"""format_word = ["元","拾", "佰", "仟", "万","拾", "佰", "仟", "亿","拾", "佰", "仟", "万","拾", "佰", "仟"]format_word_decimal = ['分', '角']format_num = {'0': "零", '1': "壹", '2': "贰", '3': "叁", '4': "肆", '5': "伍", '6': "陆", '7': "柒", '8': "捌", '9': "玖"}res = [] # 存放转换结果if '.' not in change_number:# 输入的数字没有'.',为整元,没有角和分k = len(change_number) - 1for i in change_number:res.append(format_num[i])res.append(format_word[k])k = k - 1elif '.' in change_number:float_2_change_num = Decimal(float(change_number)).quantize(Decimal("0.00"))# 如果输入的字符串有“.”,则将其转换为浮点数后,四舍五入取两位小数# print(float_2_change_num)# print(type(float_2_change_num))depart = str(float_2_change_num).split('.')# 将四舍五入得到的浮点数整数部分和小数部分拆开,实现操作为:先将浮点数转为字符串类型,再以“.”为分隔符分开# print(depart)int_part = depart[0] # 整数部分# print(int_part)decimal_part = depart[1] # 小数部分# print(decimal_part)k = len(int_part) - 1for i in int_part: # 整数部分转换res.append(format_num[i])res.append(format_word[k])k = k - 1m = len(decimal_part) - 1for i in decimal_part: # 小数部分转换res.append(format_num[i])res.append(format_word_decimal[m])m = m - 1return ''.join(res) # 返回结果your_money = input()result = num2money_format(your_money)print(result)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。