疯狂python讲义:数字转人民币读法

完善了多个0的情况。测试了几个条件,应该没有什么问题了。有问题欢迎指正修改。

 def divide_num(num):
	int_num=int(num)
	float_num=round((float(num)-int(num))*100)
	return(str(int_num),str(float_num))


han_list=['零','一','二','三','四','五','六','七','八','九']
wei_list=['十','百','千']
def four_to_change(num):
	result=''
	num_len=len(num)
	for i in range(num_len):
		numb=int(num[i])
		if numb != 0 and i != num_len-1:
			result+=han_list[numb]+wei_list[num_len-2-i]
		else:
			result+=han_list[numb]

	if '零零零零' in result:
		result=list(result)
		del result[1:]

	elif '零零零' in result:
		a=result.find('零零零')
		result=list(result)
		if a==0:
			del result[a:a+2]
		else:
			del result[1:] 

	elif '零零' in result:
		a=result.find('零零')
		result=list(result)
		if a==0 and result[-1]=='零':
			del result[-1]
		del result[a]

	elif result[-1]=='零':
		result=list(result)
		del result[-1]
		

	result=''.join(result)
	return result

def inter_to_str(num):
	num_len=len(num)
	if num_len>12:
		print('数字太大,无法计算')
	elif num_len>8:
		if four_to_change(num[-8:-4])=='零':
			return four_to_change(num[:-8])+'亿'+four_to_change(num[-8:-4])+four_to_change(num[-4:])
		else:
			return four_to_change(num[:-8])+'亿'+four_to_change(num[-8:-4])+'万'+four_to_change(num[-4:])
	elif num_len>4:
		return four_to_change(num[-8:-4])+'万'+four_to_change(num[-4:])
	else:
		return four_to_change(num)

num=float(input('请输入一个浮点数:'))
integer,fraction=divide_num(num)
print(inter_to_str(integer))



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值