今天我尝试使用 %lf
说明符通过 printf
函数打印一个 double
值,但我得到了 0.000000
。但是当我尝试使用 %f
说明符打印相同的内容时,我得到了正确的输出。为什么会这样?我使用 c++0x(我认为是 c++11。)
#include<stdio.h>
int main()
{
double aaa;
aaa=1.23;
printf("%lf\n",aaa);
printf("%f\n",aaa);
return 0;
}
最佳答案
也许这个答案并不完全正确,但根据 this reference ,看起来 %l
是 long int
的长度说明符,而 %f
是 float
的说明符。也许在过去这可以打印浮点变量,但我猜你的代码试图将 double 变量 aaa
视为 long int
,并将 0 打印为结果。
关于C++0x printf() 为 double 打印错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35208327/