求解惑!
#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作为输入的标识。