___________关于“float”的小数问题哦___________

来源:百度知道 编辑:UC知道 时间:2024/06/01 13:29:12
#include <stdio.h>
double main()
{
float a;
scanf("%f",&a);
printf("%f",a);
}
我运行之后,给a的值为1.123456789
为什么程序会显示1.123457呢?
而不是1.123456 ????
一两句话搞定,通俗一点。
我在补充一下:
为什么程序会显示1.123457
(一点一二三四五七)少了一个六哦

编译器 默认是6位的,如果要弄成是9位的话就这样
printf("%.9f",a);

不是少了个6 是四舍五入后6变成7了 因为默认的是6位 最后要四舍五入的

因为默认的精确度为小数点后6位 四舍五入显示

默认 float 单精度 是小数点后 6位~~

因为默认的精确度为小数点后6位 不过不是四舍五入显示,原来是什么数字就是什么数字

编辑器默认的小数位数为九位,后面的将被四舍五入。
解决方法:
若要输出9位字符——printf("%.9f",a);
后面依次类推即可