标题:类型转换问题。(float)i/j与(float)(i/j)有什么区别?具体看程序
只看楼主
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
得分:0 
回复 10楼 kettle99
o,我明白了,这个(float)(i/j)大有问题,因为i/j得出整形,再float强制,后面余数也只是00。
急着吃饭,绕进去了,郁闷。
你在二楼解释的对,不过float i/j,把两个都强制转换了吗?应该只转换i就可以吧?

[ 本帖最后由 gaoce227 于 2010-6-5 17:47 编辑 ]
2010-06-05 17:44
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
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
得分:0 
回复 12楼 kettle99
这个只强制转换i就可以吧。
2010-06-05 17:48
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
gaoce227
Rank: 4
来 自:山东
等 级:业余侠客
帖 子:134
专家分:218
注 册:2008-4-5
得分:0 
回复 14楼 kettle99
我不想去弄了,你整这个也有问题。哪有定义个整形,再求浮点型的。

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

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


[ 本帖最后由 gaoce227 于 2010-6-5 19:08 编辑 ]
2010-06-05 19:06
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
雨枫
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2010-6-4
得分:5 
float i/j 是先把i转换为float型,然后进行除法,结果当然为实型,

而float(i/j)是先进行i/j运算,结果肯定是整型,然后转换为实型,小数部分肯定是0
2010-06-05 20:48
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
得分:0 
随便找本c的书,翻到有运算符优先级表的那一页,把这个表认真的看看就知道为什么了。

身体是玩命的本钱
2010-06-05 23:06



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




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

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