返回信息流在c++32位控制台程序中输入以下两行代码,结果如下所示:
printf("%lf\n", 5);//打印 0.000000
printf("%f\n", 5);//打印 0.000000
问题1:%f 和 %lf 是一样意思吗?
问题2:为什么两行代码打印出来是0.000000?
这是一条镜像帖。来源:北邮人论坛 / cpp / #86936同步于 2015/5/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【请教】printf的 %f 和 %lf
en911
2015/5/4镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
1、可能不是一个意思哦,%f double型,%lf => long double型
2、printf("%lf\n",5) 反汇编看了一下,压栈的时候是直接压入5,没有自动类型转换为double,printf中解析的时候直接把5的二进制看做浮点型,所以很小啦,就当成0.000000了