计算得出5.2+3.1=8.29999,浮点数加法不准确如何解决?

计算得出5.2+3.1=8.29999,浮点数加法不准确如何解决?

int main()
{
float a,b,c;
a = 5.2;
b = 3.1;
c = a+b ;
printf("%f", c);
return 0;
}

计算的时候因为进制转换丢失了一定的精度,所以显示8.29999,想了解是否是加上某段代码就能变成跟平时用的计算器一样能算精准数?

看你需要保留几位小数了。浮点数的精度有限的很。
比如你就想输入出8.3,那么改为printf("%.1f",c);它会四舍五入

本来就是不准的, 你出来工作也是这样的。
往往都是 保留2位小数 。比如 10 处于 3 , 得出的结果是 3.33% ,3.33% , 3.33% 。不可能完全等于100%

可以定义double变量,更加精确。
输出时使用printf("%.10f", c);,即可四舍五入精确到小数点后10位。