烂熟于心的近义词:C语言数值运算

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 14:31:19
i=2.5+7%3*(int)(2.5+4.7)%2/4;
它的结果为什么不是2.750000而是2.500000

简单一点说,就是你还没搞清楚
1/4等于0

而1.0/4 、 1/4.0 、 1.0/4.0 都等于2.5

运算顺序问题啊

2.5+7%3*(int)(2.5+4.7)%2/4
如下:
7%3=1
2.5+4.7取整为7
最后2.5+1*7%2/4(这样都是按正常顺序的)
呵呵

像这样:
2.5+
7%3 /*等2*/
(int)(2.5+4.7)/*等7*/
7%3*(int)(2.5+4.7)%2/4=0

2.5+7%3*(int)(2.5+4.7)%2/4
7%3=1
int(2.5+4.7) 取整为7
最后2.5+1*7%2/4
2.5+7%2/4
2.5+1/4
2.5+0
因为实型是占8位,所以输出:2.500000