# 如何把2274587.84如何快速的转换为大写：贰佰贰拾柒万肆仟伍佰捌拾柒元捌角肆分？（下篇）

### 一、前言

``````def num2chinese(num):
chinese_num = ["零", "壹", "贰", "参", "肆", "伍", "陆", "柒", "捌", "玖"]
chinese_unit = ["", "拾", "佰", "仟", "万", "亿"]
num_str = str(num)
num_len = len(num_str)
chinese_str = ''
zero_flag = False
for i in range(num_len):
j = int(num_str[i])
if i == 8:
zero_flag = True
else:
if zero_flag:
chinese_str += chinese_num[0]
zero_flag = False
chinese_str += chinese_num[j] + chinese_unit[num_len - i - 1]

if zero_flag:
chinese_str += chinese_num[0]
return chinese_str

if __name__ == '__main__':
print(num2chinese(135496))
``````

### 二、实现过程

``````def num_to_chinese(num):

chinese_num = {

0: "零",

1: "一",

2: "二",

3: "三",

4: "四",

5: "五",

6: "六",

7: "七",

8: "八",

9: "九"

}

chinese_unit = ["", "十", "百", "千", "万", "亿"]

chinese_str = ""

unit_index = 0

for i in str(num):

if i.isdigit():

chinese_str += chinese_num[int(i)] + chinese_unit[unit_index]

unit_index += 1

else:

chinese_str += i

return chinese_str.strip("零") or "零"

num = 2274587.84

result = num_to_chinese(num)

print(result)
``````

``````def num_to_chinese(num):

chinese_num = {

0: "零",

1: "一",

2: "二",

3: "三",

4: "四",

5: "五",

6: "六",

7: "七",

8: "八",

9: "九"

}

chinese_unit = ["", "十", "百", "千", "万", "亿"]

chinese_str = ""

unit_index = 0

for i in str(num):

if i.isdigit():

chinese_str += chinese_num[int(i)] + chinese_unit[unit_index]

unit_index += 1

else:

chinese_str += i

return chinese_str.strip("零") or "零"

num = 2274587.84

result = num_to_chinese(num)

print(result)
``````

### 三、总结

【提问补充】温馨提示，大家在群里提问的时候。可以注意下面几点：如果涉及到大文件数据，可以数据脱敏后，发点demo数据来（小文件的意思），然后贴点代码（可以复制的那种），记得发报错截图（截全）。代码不多的话，直接发代码文字即可，代码超过50行这样的话，发个.py文件就行。

[图片上传失败…(image-2fdcfe-1689563010854)]

1人点赞

23

120

• 1
• 评论
• 收藏
• 共同学习，写下你的评论

100积分直接送

0/150