recharge = input("%s,是否要充值?(送充值金额的10%)(y/n)")
money += 1.1 * int(input("输入充值金额:"))
print("账户金额:",money)
输入充值金额:900
账户金额:990.0000000000001
为什么后面有990.0000000000001中有1出现呢?
这个是因为计算机最终只能识别二进制数据,0.1转换成二进制的时候,没办法直接表示,所以答案变成这么多位小数。
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632
建议参考这篇文档 是由于浮点数精度导致的
这个问题在计算机中普遍存在,是由于二进制表示浮点数的原因导致的。
如果要对浮点数取有效数字,用相应的函数就可以达到效果。