求解惑!

IT保安 2012-05-10 08:44:40
#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
...全文
58 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT保安 2012-05-10
  • 打赏
  • 举报
回复
lf,谢谢2楼,了解了!
W170532934 2012-05-10
  • 打赏
  • 举报
回复
double和float占有的内存字节数是不一样的,当你使用f标志输入的时候,默认输入的是float,那么就需要把float的值复制给double了,导致还有部分的空间没有得到正确的值,就这样导致了错误的结果了。输入double可以使用lf作为输入的标识。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧