最近复习C,在写一个要输出long double 型变量a的值时发现怎怎么搞都输不出正确的值来,于是我写了一个测试程序如下(编译器是DEV C):
#include<stdio.h>
#include<stdlib.h>
long double a=125435.123654;
int main(){
printf("%lf\n",a);
system("pause");
}
输出的值为一个负数,而且后面不了好多好多个零。
于是我再用VS C++ 2010试了一下同样的代码,结果居然是正确的。
这么一来我只能感慨:编译环境不同,真的结果差别好大。如果你编程发现出现了理论上不应该的结果的话,不妨换换编译器试试。