无法弄清楚怎么回事:
0.7 >0.7
是真的。看起来是一个棘手的问题。
void main()
float a=0.7;`
if(a < 0.7)`
{
printf("TRUE");
}
else
{
printf("FALSE");
}
}
答案 0 :(得分:3)
这是因为变量a
是float
,而常量0.7
是double
。浮点类型中0.7的表示不精确。当值转换为float
时,结果会略微小于double
值。这种差异可能是双向的,即float
表示可能会比转换后的相应double
略大。
添加演员表可以解决问题:
if(a < (float)0.7) {
printf("TRUE");
} else {
printf("FALSE");
}