阿拉伯数字转换成中文大写数字

img


这个代码怎么改成当包含小数时,也能把点输出哇,思考好久想不出来怎么解决( p′︵‵。)

加个判断就行:

    if number[i] == ".":
        print(".")
    else:
        ......

或者改变uppercase_numbers的数据结构,改成dict.


import re

def NToS(m):
    return '零壹贰叁肆伍陆柒捌玖点'['0123456789.'.index(m.group(0))]

print(re.sub('[0-9\.]',NToS,'1234560789.121'))

# coding:utf-8

ChineseNumber = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]

def convert_num_to_chinese(number):
    integer, decimal = number.split('.')
    result = ''
    part = ''
    
    # 整数部分转换
    for i in range(len(integer)):
        part = ChineseNumber[int(integer[i])] + part
    
    result += part
    
    # 小数部分转换
    if decimal != '0':
        result += '点'
        part = ''
        for i in range(len(decimal)):
            part += ChineseNumber[int(decimal[i])]
        result += part
    
    return result
number = input("请输入一个数字")
print(convert_num_to_chinese(number))