| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2058 人关注过本帖
标题:类型转换问题。(float)i/j与(float)(i/j)有什么区别?具体看程序
取消只看楼主 加入收藏
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
类型转换问题。(float)i/j与(float)(i/j)有什么区别?具体看程序
main()
{
int i,j,temp;
float sum;
  sum=0;
for(i=1,j=1;i<13;temp=j,j=i+j,i=temp)
    {
        
        sum=sum+(float)(i/j);
        
    }
   
printf("%5.2f",sum);
}

运行结果1.00

如果把程序改为sum=sum+(float)i/j;则运行结果4.01。

高手解释下原因啊。(float)(i/j)与(float)i/j这么大区别啊????
搜索更多相关主题的帖子: float 类型 
2010-06-05 10:22
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
是不是可以这样理解?(float)i/j是先把i和j转换为float型,然后做除法,结果也为float型

而(float)(i/j)是先做int型的除法,然后把商转换为float型?
2010-06-05 10:25
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
自己乱想的,不知道合理不合理,所以上来请教高人呵呵
2010-06-05 10:34
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
回复 5楼 myhnuhai
为什么啊?
2010-06-05 16:40
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用gaoce227在2010-6-5 11:21:31的发言:

“(float)i/j”没意思,结果还是整形,因为你的sum是float,所以结果的余数为00.
呵呵,结果是小数,咋是整型啊?比如(float)i/j,i=1,j=2,则结果是0.5。还是整型?

[ 本帖最后由 kettle99 于 2010-6-5 16:42 编辑 ]
2010-06-05 16:41
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用gaoce227在2010-6-5 16:53:45的发言:

那是我的错了
呵呵,共同学习
2010-06-05 17:26
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用gaoce227在2010-6-5 17:44:26的发言:

o,我明白了,这个(float)(i/j)大有问题,因为i/j得出整形,再float强制,后面余数也只是00。
急着吃饭,绕进去了,郁闷。
那(float)i/j怎么解释啊?结果是什么?
2010-06-05 17:46
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用gaoce227在2010-6-5 17:48:39的发言:

这个只强制转换i就可以吧。
呵呵,实际运行结果跟你说的想法有出入

如果int i,j,a;
i=1;
j=2;
a=(float)i/j;则为0.5。

而a=(float)(i/j);为0

2010-06-05 18:56
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
收藏
得分:0 
以下是引用gaoce227在2010-6-5 19:06:37的发言:

我不想去弄了,你整这个也有问题。哪有定义个整形,再求浮点型的。

/*a明明是整形吗?*/
int i,j,a;
a=(float)i/j;则为0.5。

而a=(float)(i/j);为0
这才是学习嘛
2010-06-05 19:17
快速回复:类型转换问题。(float)i/j与(float)(i/j)有什么区别?具体看程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012476 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved