python数字转中⽂字符_python数字⾦额转换为中⽂⼤写⾦额python数字⾦额转换为中⽂⼤写⾦额
编写⼀函数,将数字⾦额转换为中⽂⼤写⾦额。设最⾼位考虑到亿,最低位考虑到分(如:数字⾦额为1023.445,转换为中⽂⼤写⾦额为:壹仟零佰贰拾叁元肆⾓伍分)。输⼊:⼀个数字⾦额(如:1234.5),输出:中⽂⼤写⾦额(壹仟贰佰叁拾肆元伍⾓零分)。
from decimal import Decimal
def 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) - 1
for i in change_number:
res.append(format_num[i])
res.append(format_word[k])
k = k - 1
elif '.' 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) - 1
for i in int_part: # 整数部分转换
res.append(format_num[i])
res.append(format_word[k])
k = k - 1
m = len(decimal_part) - 1
for i in decimal_part: # ⼩数部分转换
res.append(format_num[i])
python货币转换
res.append(format_word_decimal[m])
m = m - 1
return ''.join(res) # 返回结果
your_money = input()
result = num2money_format(your_money) print(result)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论