为什么将定义中float改为double ,程序就会运行得到一个错误的答案?

[复制链接]
查看11 | 回复2 | 2011-3-2 21:32:42 | 显示全部楼层 |阅读模式
#include
#include
void main()
{
floatx,y;
scanf("%f",&x);
if(x>9)
{y=fabs(2*x*x-205);
printf("%0.1f\n",y);}
else if(x<9)
{y=cos(x)/log(x);
printf("%0.3f\n",y);}
else
{ y=exp(2)+sqrt(9*x);
printf("%0.3f\n",y);}
}

回复

使用道具 举报

千问 | 2011-3-2 21:32:42 | 显示全部楼层
double是64位,有效数字为15~16位和float是32位,有效数字为6~7位,则改为double型时,会造成内存存取失败,导致错误,所以不能随意改变数据类型~~~
回复

使用道具 举报

千问 | 2011-3-2 21:32:42 | 显示全部楼层
你所谓的错误是什么意思?如果你修改了float,那么下面对应的格式也要一起修改的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行