<分区>
不知道怎么来的:
0.7 >0.7
是真的。似乎是一个技巧问题。
void main()
float a=0.7;`
if(a < 0.7)`
{
printf("TRUE");
}
else
{
printf("FALSE");
}
}
标签 c
<分区>
不知道怎么来的:
0.7 >0.7
是真的。似乎是一个技巧问题。
void main()
float a=0.7;`
if(a < 0.7)`
{
printf("TRUE");
}
else
{
printf("FALSE");
}
}
最佳答案
这是因为变量 a
是一个 float
,而常量 0.7
是 double
。浮点类型中 0.7 的表示不精确。当该值转换为 float
时,结果变得比 double
值略小。这种差异可能是双向的,即 float
表示在转换后可能会变得略大于相应的 double
。
添加 Actor 将解决问题:
if(a < (float)0.7) {
printf("TRUE");
} else {
printf("FALSE");
}
关于无法弄清楚答案是如何得出的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27342784/