C语言编程序时怎么控制浮点型输出的小数点精确到几位

 我来答
iiiiiiiipl
推荐于2019-09-11 · TA获得超过9921个赞
知道答主
回答量:68
采纳率:66%
帮助的人:3.7万
展开全部

使用输出格式说明符来指定精确到小数点位数。

如:

void main()

{

float a=345.234678;

printf("%.3f\n", a) ;

}

其中%.3f里的3就表示输出精确到小数点后3位。

所以可参考的形式是printf("%m.nf",p);

%m.nf,指定输出的数据共占m列,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。

扩展资料:

实型变量分为两类:单精度型和双精度型,

其类型说明符为float 单精度说明符,double 双精度说明符。在Turbo C中单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。双精度型占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。

实型变量说明的格式和书写规则与整型相同。

例如: float x,y; (x,y为单精度实型量)

double a,b,c; (a,b,c为双精度实型量)

实型常数不分单、双精度,都按双精度double型处理。

参考资料:浮点型数据

banji的老巢
推荐于2019-09-09 · TA获得超过4.4万个赞
知道小有建树答主
回答量:266
采纳率:100%
帮助的人:7.8万
展开全部

可以通过输出格式说明符来指定精确到小数点后几位。
比如:
printf("%.5f\n", 3.1415927) // 输出_ 3.14159 (其中_ 代表空格)
上面的输出格式说明符%.5f  中各部分意思如下:

  1. %f 浮点数;

  2. ".5”——(5的前面有个小数点)表示输出精确到小数点后5位。如果实际数字不足5位,则在末尾补0,若大于5位,则按四舍五入取前五位。



拓展资料:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。

C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bkctuex2l
2011-05-03 · TA获得超过1430个赞
知道小有建树答主
回答量:1413
采纳率:50%
帮助的人:874万
展开全部
你这几个题看起来简单,做起来很费时间呀,这几个题我已经调试完毕,你自己调试下看看,不知能否满足你的要求,哈哈!
1.
#include <stdio.h>
void main()
{
//计算圆周长、圆面积、圆球表面积、圆球体积、圆柱体积
float r,h,c,s,s1,v,v1;//定义了三个浮点型变量
const float pi=3.14;//定义了一个符号常量
printf("请输入圆的半径:");
scanf("%f",&r);//从键盘输入一个半径值
printf("请输入圆柱的半径:");
scanf("%f",&h);//从键盘出入圆柱的高
c=2*pi*r;//计算圆的周长
s=pi*r*r;//计算圆的面积
s1=4*pi*r*r;//计算圆球的表面积
v=4*pi*r*r*r/3;//计算圆球的体积
v1=s*h;//计算圆柱的体积
printf("圆半径为%.2f,圆柱高%.2f\n",r,h);//分别输出圆的周长,面积,表面积
printf("圆的周长为%.2f\n",c); //,体积和圆柱的体积,并且小数点后保留二位有效数字
printf("圆的面积为%.2f\n",s);
printf("圆球的表面积为%.2f\n",s1);
printf("圆球的体积为%.2f\n",v);
printf("圆柱的体积为%.2f\n",v1);
}

2.1
#include<stdio.h> /*C程序代码*/
void main()
{
//打印菱形图案
int i,j,k;
for(i=0;i<4;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<3;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
}

2.2
#include <stdio.h>
void main()
{
//在屏幕上输出平行四边型
int i,j,k;
for(i=0;i<=5;i++)
{
{for(j=1;j<=i;j++)
printf(" ");
for(k=1;k<=5;k++)
printf("* ");
printf("\n");
}
}
}

3.
#include <stdio.h>
void main()
{
//按从小到大的顺序输出三个数
int a,b,c,mid;//定义了四个整型变量
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);//从键盘给这三个变量赋值
if(a>b)
//将a和b中的数值进行交换
if(b>c)
//将b和c的中数值进行交换
if(a>b)
//将a和b的中数值进行交换
printf("排序后依次为:\n");
printf("%d\t%d\t%d\t\n",a,b,c);//输出这三个变量的值
}

4.
#include <stdio.h>
#define N 5
struct student
{
char num[6];
char name[8];
float score[4];
}stu[N];
void main()
{
int i,j;
void print(struct student stu[6]);
for(i=0;i<N;i++)
{
printf("请输入学生的成绩:",i+1);
printf("NO.:");
scanf("%s",stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
for(j=0;j<3;j++)
{
printf("score%d:",j+1);
scanf("%f",&stu[i].score[j]);
}
printf("\n");
}
print(stu);
}
void print(struct student stu[6])
{
int i,j;
printf("NO. name score1 score2 score3\n");
for(i=0;i<N;i++)
{
printf("%s\t%s\t",stu[i].num,stu[i].name);
for(j=0;j<3;j++)
printf("%8.2f",stu[i].score[j]);
printf("\n");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
侃史小吏
2011-05-02 · TA获得超过412个赞
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:141万
展开全部
printf("%m.nf",p);
%m.nf,指定输出的数据共占m列,其中有n位是小数。如果数值长度小于m,则左端补空格,若数值长度大于m,则按实际位数输出。
还有一种:%-m.nf,与%m.nf基本相同。只是数值长度小于m,则右端补空格。而%m.nf是如果数值长度小于m,则左端补空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssilspro
2011-05-02 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1699万
展开全部
%m.nf
最小域宽m
精度n:%f,%e,%E时,确定显示小数点后位数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(8)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式