有人可以告诉我为什么以下不起作用?(我的意思是没有输出)
if(0.0001<0.001<0.01)
cout<<"hi\n"<<endl;
output: (blank)
以下工作原理:
if(0.0001<0.001 && 0.001<0.01)
cout<<"hi\n"<<endl;
output:hi
答案 0 :(得分:5)
因为C ++中没有神奇的n-ary GCM
运算符。
<
解析(因为0.0001 < 0.001 < 0.01
是左关联的)为
<
和(0.0001 < 0.001) < 0.01
返回值0.0001 < 0.001
的值为bool
的值。现在你有了
true
但根据标准,当转换为整数类型时,true < 0.01
布尔值为1,因此您有
true
这是假的。