一个关于求圆的问题
#include <stdio.h>#include <stdlib.h>
int main()
{
double a=3.14159;
double b;
scanf("%f",&b);
float c;
c=a*b*b;
printf("%8.2f",c);
return 0;
}
出现这种情况
然后把double b;改成float b;就可以正常运行,为什么?double不是更大一点吗 用%lf试一下,这个输出double 改为scanf("%lf", &b);
%f只能默认输入float类型
详细请参考scanf -- 格式化输入
http://bbs.fishc.com/thread-67391-1-1.html
(出处: 鱼C论坛)
{:10_279:} 我觉的是在c=a*b*b,由double强转到float的时候数据截断了,就是由大的转向小的了 float单精度
double双精度
3.1415906使用float就会出现问题
页:
[1]