有人可以告诉我为什么以下不起作用?(我的意思是没有输出)
if(0.0001<0.001<0.01) cout<<"hi\n"<虽然以下工作:
if(0.0001<0.001 && 0.001<0.01) cout<<"hi\n"<
Jack.. 6
因为
<
C++中没有神奇的n-ary 运算符.0.0001 < 0.001 < 0.01被解析(因为
<
是左关联的)(0.0001 < 0.001) < 0.01并
0.0001 < 0.001
返回值为value的bool
值true
.现在你有了true < 0.01但是根据标准,
true
当转换为整数类型时,布尔值为1,所以你有1 < 0.01这是假的.
1> Jack..:因为
<
C++中没有神奇的n-ary 运算符.0.0001 < 0.001 < 0.01被解析(因为
<
是左关联的)(0.0001 < 0.001) < 0.01并
0.0001 < 0.001
返回值为value的bool
值true
.现在你有了true < 0.01但是根据标准,
true
当转换为整数类型时,布尔值为1,所以你有1 < 0.01这是假的.