c语言打印double类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言打印double类型相关的知识,希望对你有一定的参考价值。

我在一个循环中执行printf("%d %0.8f\n",i,sum);
如何让它输出
n e
- -----------
0 1
1 2
2 2.5
3 2.666666667
4 2.708333333
.......

而不是

.........
0 1.00000000
1 20000000
2 2.5000000
3 2.666666667
4 2.708333333
............

就是说怎么知道它什么最低位都是0了,从而不将它打印出来??

在C语言中,打印double类型需要使用格式化输出函数printf。
在使用是,double的通配符为%lf。
比如定义double a = 1.234;
可以用
printf("%lf", a);
实现打印。
默认打印6位小数,可以通过
printf("%.xlf",a);
来控制小数位数。 其中x为常数,代表打印的小数位数。

除此外,还可以用
printf("%e", a);
实现以科学计数法来输出a。

如果不想自行选择科学计数法还是正常小数输出,可以由系统自行选择最短情况,只能控制,只需要
printf("%g", a);
参考技术A %f:浮点型输出,默认保留6位小数位,四舍五入或补零;
%g,G:以%f或%e中较短的输出宽度输出单、双精度实数;
参考技术B printf("%d %.8g\n",i,sum);本回答被提问者采纳

c语言double类型输出问题及字符输入问题

#include<stdio.h>
void main()
double x;
char str[10],ch;
/*以下为输入一个double类型的数*/
scanf("%f",&x);
printf("%f\n",x);
/*问题1:以上结果为什么输出了一个随机数??*/
/*以下为输入一个字符串*/
scanf("%s",str);
/*以下为输入一单个字符*/
/*问题2:为什么没有相应的输入中断???*/
scanf("%c",&ch);
printf("%c\n",ch);
/*问题3:以上输出结果为什么单个字符没有被赋值???*/
printf("%s\n",str);


问题在以上程序注释中
编译环境是VC++6.0

double要用%lf

你输入字符串时,肯定按了回车,而回车实际上输入了2个字符,第1个被用来确认scanf结束,还有一个仍然保留在了缓冲区内,被scanf("%c",&ch);读到了,这个字符是个控制字符,所以不可见.

在任何读取字符的语句之前,你最好用fflush(stdin);来清空一下缓冲区.
参考技术A #include<stdio.h>

void main()
double x;
char str[10],ch;
/*以下为输入一个double类型的数*/
scanf("%lf",&x);
printf("%lf\n",x);
/*%f改成%lf OK*/
/*以下为输入一个字符串*/
scanf("%s",str);
/*以下为输入一单个字符*/
/*scanf遇到空格或者回车自动结束*/
getchar();/*加一个用来存储回车键就OK或者fflush(stdin); 也可以*/
scanf("%c",&ch);
/*因为回车键也是一个字符。所以你在输完字符的时候回车的时候。他会把他当成字符存储到ch。你看一下你的是两行空格加两行\n是四行空格。*/
printf("%c\n",ch);
/*问题3:以上输出结果为什么单个字符没有被赋值???*/
printf("%s\n",str);


不懂可以hi我

以上是关于c语言打印double类型的主要内容,如果未能解决你的问题,请参考以下文章

在C语言中Int和double怎么转换?

请问C语言中 如何把double类型的数转化为字符串 char

用C语言如何实现 输入一个double 类型的数后 使该数保留小数点后两位 对第三个数进行四舍五入处理

C语言里怎么定义boolean类型的变量,并打印出来

C语言中double类型怎么使用?

c语言,double类型数值比较为啥出错,如何比较两个double类型大小?