关于c语言浮点数问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:47:12
#include <stdio.h>
void main()
{int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%f\n",x);
}

输出结果是27.000000为什么不是27.0,27.00.....等?????跟程序没关我就想问浮点数精度的问题,要结合我问的回答啊,谢谢了!!期待通俗易懂的回答
我想问的是浮点数不就四个字节吗,哪来那么多地方放这么多0????

把程序改成就行了
#include <stdio.h>
void main()
{int m=7,n=4;
float a=38.4,b=6.4,x;
x=m/2+n*a/b+1/2;
printf("%2.2f\n",x);
}
在C语言当中,在printf语句当中的%后面可以选择加上输出宽度选择

例如:%3.4,
整数部分代表输入的整数部分的有效位数,小数部分代表输入的小数部分的有效位数,如上输出就是设定输出整数的有效位数为3,小数的有效位数为4。

如果实际输出大于说设定的,则以实际输出的有效位数为主

如果没有对字符设定,那输出浮点数就会隐含有6位小数

除了有效位数的设定,还可以设定标志字符,有兴趣可以找C语言的教程看看

%f默认是输出6位小数,你可以用%.1f,%.2f来控制小数点后位数