C 为什么if(1/10)和if(0.1)的值不同?
只是不明白为什么下面两个有不同的值。第一个值为0,而另一个值为1C 为什么if(1/10)和if(0.1)的值不同?,c,C,只是不明白为什么下面两个有不同的值。第一个值为0,而另一个值为1 if(1/10); if(0.1); 默认情况下,1的类型为int,因此1/10将向下舍入为0,这相当于false。而0.1设置了一些位,并且不是0 另一方面,1.0/10相当于0.1 if(condition) 此处执行条件,并使用0进行检查。如果为0,则表示false,否则表示true。1/10给出的值0等于0(整数/整数给出整数结果),因此条件失败,其中as 0.1不等于0,因此它被视为true,并且将执行if块中的cu
if(1/10);
if(0.1);
默认情况下,
1
的类型为int
,因此1/10
将向下舍入为0
,这相当于false
。而0.1
设置了一些位,并且不是0
另一方面,1.0/10
相当于0.1
if(condition)
此处执行
条件
,并使用0进行检查。如果为0,则表示false
,否则表示true
。1/10给出的值0等于0(整数/整数给出整数结果),因此条件失败,其中as 0.1不等于0,因此它被视为true
,并且将执行if
块中的currenespoing语句。我认为值得注意,甚至1.0/10
和0.1
也不一定相等,因为浮点数表示特性。相关:。如果(1/10.0)或(1.0/10)或(1.0/10.0)执行if,它将为您提供0.1,因为将使用浮点值进行除法。您还可以使用1f/10
。。。或1/10
或1/10.
。