C中的浮动部门表现得很奇怪?

时间:2016-01-13 06:01:55

标签: c

我认为这是一个简单的问题,但我偶然发现了这个问题:

float y=2+2/3; 

输出:2

为什么浮动无法处理2/3? 我的猜测是float将2/3解释为整数。 但是为什么它在开始时会接受2?

2 个答案:

答案 0 :(得分:2)

那是整数除法。你基本上是在计算:

float y = 2 + (2 / 3);
float y = 2 + (0    );
float y = 2;

尝试:

float y = 2 + 2.0 / 3;

答案 1 :(得分:1)

float y = 2 + (float)2 / 3;

只需进行类型转换,它也可以正常工作。