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

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

时间:2021-11-09 16:34:38

相关推荐

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])

res.append(format_word_decimal[m])

m = m - 1

return ''.join(res) # 返回结果

your_money = input()

result = num2money_format(your_money)

print(result)

原文链接:/weixin_45895290/article/details/107004563

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