C语言DouBlE类型等式输出

输出int , 用%d输出float, 用%f输出double,用 %lf输出long int ,用%ld

你可以用printf("%.nf\n",a);控制小数位数,n随你取值,只要在double精度范围内即可

因为你指定的输出格式不对,printf()函数有个不成文的规定,使用%f对实数只输出小数点后6位的数字(不是有效数字,强制只输出小数点后6位),所以输出双精度型必须明确指定输出小数点后位数,要求使用%.nf格式n为小数点后数位! %lf格式定义的是scanf()函数的格式输入,不是输出. 输入和输出是2个不同的概念,请楼主仔细参考C库函数手册.

对于double类型变量,其输出时的格式说明符一般用 %lf 因为double型是双精度浮点型,所以用long float型的格式输出符 %lf 而对于单精度浮点型float, 其输出格式说明符一般用%f 比如:double a = 3.1323; float b = 0.234; printf("%lf\n", a); // 输出结果为3.1323 printf("%f\n", b); // 输出结果为0.234

C语言中double默认输出 6 位小数(不足六位以 0 补齐,超过六位按四舍五入截断),可以根据自己的需要去修改输出的位数,例如输出两位小数:(%2lf).double可以表示十进制的15或16位有效数字.扩展资料:double负值取值范围为 -1.

1、%f 是输出 float 型变量;%f 是输出 double 型变量;%Lf 是输出 long double 型变量.2、在C语言中,对于数值类型只有通过printf类函数输出这一种方式,比如printf, sprintf, fprintf等.这类函数输出时要求有格式符号,其中long double的格式

printf("%f",a); 只要前面定义是double形,输出就是double形

基本上所有支持类型转换的语言,在高精度向低精度转换时会直接截取高位,所以低位会丢失 另外你的第二个printf里边的输出格式控制符是%f(正确的应该是%lf),而变量是long double,在截掉低位之后发生数据丢失,所以会产生第一个结果.你把long去掉当然是正确的结果,至于在mac上和其他电脑的区别,只是机器的问题,但是值并没有改变

用%lf输出比如double a=1.1;printf("%lf\n", a);

#include<stdio.h> main(){ double a; scanf("%f",&a); if(a>0) printf("%f>0\n",a); else if(a==0) printf("%f=0\n",a); else printf("%f<0\n",a); return 0; }

相关文档

c语言中double类型
输出float类型
double型数据输入
c语言double类型输出
double的输入格式
c语言double类型输入
在c语言中double型
double类型输入格式
double的输入输出格式
double定义的如何输出
double c语言输入输出
c语言中double的用法
double类型输出格式
c语言double什么意思
double类型输入字符
double输出符号
输入double类型用什么符号
c语言输入double型的格式
电脑版