外国电影女主角好看的:有关C语言的问题?

来源:百度文库 编辑:中科新闻网 时间:2024/05/01 12:06:53
#include<stdio.h>
main()
{
float f=3.1415927
printf("%f,%5.4f,%3.3f",f,f,f);
}
第二个f输出的结果为什么是3.1416,
%5.4f不是表示该数占5列,小数点后有4位吗,而3.1416不是占了6列吗?
这是为什么呀?

%5.4f的意思是指要打印出5位有效数字,而且小数点后面要有4位小数,3.1416就是5个有效数字啊,而且后面有4个小数啊,而且它会自动四舍五入的,%3.3f,它就会打印出3.142,它先把小数点后面的三位142打出,后面判断总共才三位有效数字,就会把小数点前面的所有数字都打出来,而不再管打出来的有效数字是不是三位,什么我们在编程序的时候要注意格式要保证对,%3.3f应该改为%4.3f才符合c语言的编程风格,但是你真的是%3.3f也算对,只是不科学而已,影响不大,记得:当后面的小数位数比有效数字还多时,计算机就先保证小数后面的位数,然后把小数点前面的全部打印出来.

这里的5是指数据占5列,而4是指有几位小数.如果数据少与5的话就要在左边加空格.

补充一点,第一个数输出的应该是3.141593吧? float类型仅支持八位精确值