C语言如何将多位小数输出时只输出四位

高分请说下,C语言如何将多位小数输出时只输出四位?

txt文档中数据如下,如何将其全都只保留到小数点后四位,四位后的数据四舍五入呢
116.357003333333
116.357005
116.357005
116.357021666667
116.357078333333
116.357171666667
116.357298333333
最新回答
罌粟花开

2024-10-14 08:00:55

你好!!

    采用文件读取的方式,读入每行数据,然后取四位小数显示:

#include<stdio.h> 
main(){
double s;
FILE *fp;
int i,j;
fp =fopen("abc.txt","r");  // 文件名你自己改吧
while(1)
{
    fscanf(fp,"%lf",&s);    // 读一行
    if (feof(fp)) break;   // 读到 EOF 文件结束
    printf("%.4lf\n",s);   // 输出4位小数
};
fclose(fp);
return 0; 
}
追问
总监,您的程序执行不了啊
追答

有个地方改了一下,你运行试试吧,你把文件名,改成你自己的文件名

还有什么问题吗?

#include<stdio.h> 
main(){
    double s;
    FILE *fp;
    int i,j;
    fp =fopen("abc.txt","r");  // 文件名你自己改吧
    while(1)
    {
        fscanf(fp,"%lf",&s);    // 读一行
        if (feof(fp)) break;   // 读到 EOF 文件结束
        printf("%.4lf\n",s);   // 输出4位小数
    };
    fclose(fp);
    return 0; 
}

追问
好吧,谢谢总监叔叔
追答
你认识我吗,你是谁呀
ク罡秂君孓ク

2024-10-14 08:39:30

可以通过printf函数输出,并控制格式字符。
要输出float变量f,并只输出四位小数,可以写作
printf("%.4f", f);
当格式设置为%.nf时,n为
非负整数
,表示输出的时候保留n为小数。
绝命小红帽

2024-10-14 09:06:28

C语言中,可以使用%.4f格式符来输出float型实数,或%.4lf来输出double型实数,以实现输出时只输出四位小数(后余小数四舍五入)。
相逢即是缘分

2024-10-14 08:33:03

float a = 116.357003333333;
printf("%.4f",a);

'.'后面是几就保留几位小数
追问
这些数据是在txt文档中保存的,打开文档数据类型只能是char型,这种情况怎么使用printf啊
追答
TXT里都是数据么,都是数据的话就用文件操作吧
void function()

{
FILE *in,*out;
in = fopen("input.txt","r");
out = fopen("output.txt","w");
while(1)
if (fscanf(in,"%f",&a))
fprintf(out,"%.4f\n",a);
else
{
fclose(in);

fclose(out);

return;

}
}
空城仅有旧梦在

2024-10-14 08:56:52

printf("%4d",i);
追问
可是打开txt文档后,这些数据是以char形式保存的,这种情况怎么使用printf?  类型转换也不行啊