为什么如果(1/10)和if(0.1)有不同的值?

时间:2014-04-07 10:44:46

标签: c

只是不明白为什么以下两个有不同的值。第一个值为0,而另一个值为1

if(1/10);
if(0.1);

2 个答案:

答案 0 :(得分:12)

默认情况下,1的类型为int,因此1/10将向下舍入为0,相当于false。虽然0.1设置了一些位,但不是0

另一方面,1.0/10相当于0.1

答案 1 :(得分:0)

if(condition)

此处执行condition并使用0进行检查。如果为0则表示false,则表示true。 1/10给出值0,它等于0(因为整数/整数给出整数结果)所以条件为failes,其中0.1不等于0,所以它被视为true和{{1中的currespoinding语句将执行块。