关于python,C++等浮点数的数据精度问题解决办法(如int(0.29*100)不等于29,3.8*3.9=14.819999999等等)
简单来说只要使用IEEE_754标准来存储浮点数的语言都存在这种问题,出现的原因就是小数在转换成二进制的过程中由于位数的限制不能完全表示这个小数导致精度丢失。比如我想取得1.29的小数,即想要取得2和9,代码如下:doublea=0.29;intb1=int(a*10);intb2=a*100-b1*10;如果没有意外应该是a=2,b=9;但是得到的输出缺失b1=2,b2=8.因为0.29*100