00问答网
所有问题
float f=1.2;printf("%d",f);输出的结果是什么?为什么?
输出的是1073741824为什么呢?
举报该问题
推荐答案 推荐于2017-11-16
float f=1.2;printf("%d",f);输出的结果错误的数。这是由于存储格式的不同造成的,没有必要知道其中1073741824与1.2的关系。
float的输入/输出格式符必须使用%f,不能与%d混用。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://00.wendadaohang.com/zd/Z0IDTjII0.html
其他回答
第1个回答 2012-09-26
这是出错了,f是浮点型,%d只能输出整型,浮点型不能直接转换整型
追问
其实也知道这个是出错了的,只是想知道这种情况计算机是怎么运行的,还是谢谢你哦
本回答被网友采纳
第2个回答 2012-09-21
我在c++上运行的结果是107374182不知道为什么
相似回答
C语言中
float
f=
1.23
,为什么
用
printf(
“
%d
”
,f)输出是
乱码?
答:
“C语言不是能自动将
输出
数据转化为格式控制类型” 指的是在赋值运算的时候,在
printf
函数里头是需要形参与实参一一对应。而且必须是一一对应!C语言输出时调用printf函数实现的,这里的要求就与我们的函数里头讲的要求是一样的。printf只不过是一类标准的库函数,它本质上还是函数。
C语言中
printf(
"\n"
)输出是什么结果
?printf("
%d
")什么意思
?为什么?
答:
printf(
"%d",a);完整应该这么用,a是你要
输出的
变量名。
%d是
个占位符,它为一个int型数据站位,一个printf中可以有多个占位符。如:printf("
%d%d
%f",x,y,z
);f
也是占位符,它为
float
型数据站位,占位符的对应关系是顺序对应的,即第几个占位符给第几个变量站位,与数据类型无关。其它的一些转...
...printf("
%d
\n", sizeof(1.12*1.12)
); printf(
"%d\n", sizeo
f(f
*f...
答:
float
f = 1.2;
则编译器会认为f是1.2f,即float类型的小数。无f后缀的小数默认double类型。所以1.12*1.12就是double*double,结果仍是double类型,sizeof(double)为8
;f
*
f是float
*
float,结果
仍是float,sizeo
f(float)
为4。如果使用C99/C11标准,sizeo
f()
应该使用%zd进行打印。
float
x
=1.2,printf(
"%10.7f",x
)输出,结果
为1.20000000 结果
答:
你%10.7 规定了浮点数为10位,如果你需要小数位数7位,直接%.7f 就可以了
大家正在搜
相关问题
C语言中float f=1.23,为什么用printf(“%...
C语言:printf("%d",1.2 - 1.0 == 0...
float f=123.456; printf("%.2f"...
C语言中float f=123456789.345,然后pr...
若定义“float x=1.2344355”,则“print...
float f=10;f+=f;printf(“%f”, f...
sizeof问题 float f = 1.12 printf...