当前位置: 代码迷 >> 综合 >> 关于double型的精度问题解决办法(如0.14*100!=14,0.29*100!=29等等)
  详细解决方案

关于double型的精度问题解决办法(如0.14*100!=14,0.29*100!=29等等)

热度:83   发布时间:2024-02-08 02:24:53.0

简单来说只要使用IEEE_754标准来存储浮点数的语言都存在这种问题,出现的原因就是小数在转换成二进制的过程中由于位数的限制不能完全表示这个小数导致精度丢失。

double型的0.29*100=28.9999999...;或是0.14*100=14.0000...000001

可以用round()四舍五入

用法如

double a=0.14; 
cout<<round(a*100);

而round(a*100)此时便等于14。

  相关解决方案