CodeBlocks上使用如下代码输出long double数据类型的变量时数值异常
#include <stdio.h>
#include <math.h>
int main()
{
long double num=5.32e-5;
printf("%Le is %Le",num,num);
return 0;
}
前一个输出和后一个输出不正确不说,居然还不一致,检查后发现CodeBlocks默认编译参数不支持C99,而long double是1999修订后的C语言关键字,所以编译器就不认了,既然知道原因那就简单了,在CodeBlocks的编译参数中添加指令:“-std=c99”(不包含双引号)即可。