首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求解惑!解决办法

2012-05-20 
求解惑!#include stdio.hvoid main(){double a,b//*这里定义double,运行后显示错误结果,如果定义float,

求解惑!
#include "stdio.h"
void main()
{
double a,b; //*这里定义double,运行后显示错误结果,如果定义float,则结果正常*//
scanf("%f",&a);
b=a*0.01;
printf("%f\n",b);
}

疑问如上,double和float不是都可以用%f吗,为什么定义double就不显示正确结果,定义float就正常呢?搞不懂!
我用的是turbo C3.0

[解决办法]
double和float占有的内存字节数是不一样的,当你使用f标志输入的时候,默认输入的是float,那么就需要把float的值复制给double了,导致还有部分的空间没有得到正确的值,就这样导致了错误的结果了。输入double可以使用lf作为输入的标识。

热点排行