# 将浮点数分成整数部分和小数部分
def divide(num):
integer = int(num)
fraction = round((num - integer) * 100)
return (str(integer), str(fraction))
han_list = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']
unit_list = ['十', '百', '千']
# 将数字字符串变成汉字字符串,并为它们添加单位
def four_to_han(num_str):
result = ""
num_len = len(num_str)
for i in range(num_len):
num = int(num_str[i])
if i != num_len - 1 and num != 0:
result += han_list[num] + unit_list[num_len - 2 - i]
elif i != 0 and num == 0 and int(num_str[i+1]) == 0:
pass
else:
result += han_list[num]
return result
# 整数部分的转换
def integer_to_str(num_str):
str_len = len(num_str)
result = ""
if str_len > 12:
print("数字太大,无法翻译")
return
elif str_len > 8:
result += four_to_han(num_str[:-8]) + '亿' + four_to_han(num_str[-8:-4]) + '万' +
four_to_han(num_str[-4:]) + '元'
return result
elif str_len > 4:
result += four_to_han(num_str[:-4]) + '万' +
four_to_han(num_str[-4:]) + '元'
return result
else:
return four_to_han(num_str) + '元'
# 小数部分的转换
def fraction_to_str(num_str):
num1 = int(num_str[0])
num2 = int(num_str[1])
result = han_list[num1] + '角' + han_list[num2] + '分'
return result
num = float(input("请输入一个浮点数:"))
# 测试把浮点数分成整数部分和小数部分
integer, fraction = divide(num)
integer_str = integer_to_str(integer)
fraction_str = fraction_to_str(fraction)
print("转换结果:", integer_str + fraction_str)