C语言问题

[复制链接]
查看11 | 回复3 | 2011-7-30 08:41:15 | 显示全部楼层 |阅读模式
int a=4,b=5;
float x=3.4,y=2.1;
求表达式(float)(a+b)/2+(int)x%(int)y的值。
感觉结果是5.5,可答案是5.500000.它说是浮点型,可5.5也是浮点型啊,不明白,希望解释下,谢谢啦!

回复

使用道具 举报

千问 | 2011-7-30 08:41:15 | 显示全部楼层
呵呵,你在最后算出的结果中(a+b)/2用的是float的,x,y用的是整形的,这几种类型之间都有一个转换规则的,先给你说一下由低到高的规则:最低级(int,char,short)->次级(unsigned)->第二级(long)->最高级(double,float),哎,不给你说复杂了,你这个式子中有一个数据是float型,有一个是int型,则最后的结果要转换成最高级float型的,而float型的小数点后面是有六位小数的,这下该知道了吧...
回复

使用道具 举报

千问 | 2011-7-30 08:41:15 | 显示全部楼层
浮点型在输出时会默认保存6位小数点...
回复

使用道具 举报

千问 | 2011-7-30 08:41:15 | 显示全部楼层
5.5-5.500000=0...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行