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

use*_*287 3 c

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

if(1/10);
if(0.1);
Run Code Online (Sandbox Code Playgroud)

Ser*_* L. 12

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

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

  • 我认为值得注意的是,即使是"1.0/10"和"0.1"也不一定相等,因为浮点数表示特征. (3认同)