C语言double类型输出为0.0000.....的问题

1、编译环境

VS2015 和 dev c++

2、遇到的问题

我在用VS2015对一个double类型的数据进行输出我写的是

double num =1324;
printf("%lf",num);

其中没有考虑输出格式的问题就使用了%lf,输出一点都没有,当我换成%f的时候也没有出现问题,但是当我换成了dev c++的时候,输出用

printf("%lf",num);

出现了问题,打印出来的是0.0000…

就很纳闷,换成%f就可以正确输出了,是不是VS2015和dev c++编译器的差异呢,我想这种关键的差异VS应该不会做优化吧,应该是标准的问题吧,然后想起来我的dev c++,我之前再编译选项里面加的std=c99,我把这个删掉以后,输出就和VS一样了,也就是说%f%lf输出的都是一样的结果。

所以可能是编译器和标准的问题吧?不太确定,但是遇到输出结果不符合预期,再确定值没有什么问题的时候,很有可能就是格式控制符的问题了。

在输入的时候double必须用%lf,不然会出错。

double num;
scanf("%lf",&num);

猜你喜欢

转载自blog.csdn.net/wayway0554/article/details/82764538