int a=2*3;
float d=10;
float b=(d/3);
float c=0;
c=a+b;
printf("%f",c);
图片
第一行变量类型,全都是int
第二行变量类型全都是float
第三行的v类型是float H类型是int g类型是float
对应的是输出的情况右边图片对应

问题是
第一组代码,int 形式,+float形式,可以正常输出
为什么图片中的代码就不可以?会有丢失的情况
int a=2*3;
float d=10;
float b=(d/3);
float c=0;
c=a+b;
printf("%f",c);
图片
第一行变量类型,全都是int
第二行变量类型全都是float
第三行的v类型是float H类型是int g类型是float
对应的是输出的情况右边图片对应

你应该复习float类型是如何二进制存储的相关知识
那么你应该知道,float类型的有效数字位数有限,只能支持6-7位有效数字(因为是二进制存储,而我们平时说的有效数字是10进制,除不开,所以在6-7之间)
而你原始数据两个有效数字都已经到达了8位
转存为float类型一定会造成有效数字丢失