标题:类型转换问题。(float)i/j与(float)(i/j)有什么区别?具体看程序
只看楼主
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
结帖率:100%
已结贴  问题点数:20 回复次数:17 
类型转换问题。(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
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
得分:10 
回复 2楼 kettle99
对啊,就那样理解呗!

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-06-05 10:29
kettle99
Rank: 2
等 级:论坛游民
帖 子:52
专家分:54
注 册:2010-5-25
得分:0 
自己乱想的,不知道合理不合理,所以上来请教高人呵呵
2010-06-05 10:34
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
得分:0 
回复 3楼 myhnuhai
这两个的区别可能在于没有括号的计算结果的小数部分不是0;而加上括号的计算结果小数部分全是0;

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-06-05 10:40
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
得分:5 
“(float)i/j”没意思,结果还是整形,因为你的sum是float,所以结果的余数为00.
2010-06-05 11:21
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
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
得分:0 
回复 8楼 kettle99
那是我的错了

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

那是我的错了
呵呵,共同学习
2010-06-05 17:26



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-309272-1-1.html




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

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