1、问题:
进行浮点小数计算时候出现了如下,不是想要的结果,查了一下原因,简单记录!

上面两个并不是期待的值,有时候会对结果造成影响(做题没通过!!!)
2、粗鄙了解到的原因:
参考链接:知乎与文档
https://www.zhihu.com/question/25457573/answer/30851062
http://python浮点数运算,第2个回答 15. 浮点算术:争议和限制 — Python 3.8.13 文档
https://docs.python.org/zh-cn/3.8/tutorial/floatingpoint.html 大概理解,知乎第2个答案,小数以二进制形式的不表达具有有穷性导致。例如0.625二进制是0.101,0.4不能被精确转化0.0110.......无限循环小数,但是计算机存储资源有限,因此存储的二进制小数与表示的二进制小数不同。 ————————————————0.625二进制小数表达————————————————— (1) 0.625*2 = 1.25, 整数部分为1,小数部分为0.25 (2) 0.25 * 2 = 0.5 , 整数部分为0,小数部分为0.5 (3) 0.5 * 2 = 1 , 整数部分为1,小数部分为0 所以0.625的二进制表示就是0.101
3、简单解决办法

方法一:精确计算
引入decimal函数,进行十进制的精确小数计算。如上a1,b1所示,传入的浮点小数需要转换为字符串型,整数不需要。注意返回的内类型是Decimal,可能需要转换
方法二:约数
1、使用round()函数进行约数处理,如a2; 2、使用格式化输出进行处理,如a3,除%以外还有format()输出格式。