当我运行这段代码时,它会打印出
False
。我不清楚
#include <stdio.h>
int main()
{
float f = 0.1;
if (f == 0.1)
printf("True");
else
printf("False");
}
我希望这段代码打印出
True
而不是False
0.1
是一个 double
常数。在float f = 0.1;
中,double
值被隐式转换为float
。 float
和 double
类型具有不同的精度,因此转换会产生小的舍入误差。因此,存储在float
中的f
值不等于double
的0.1
值。
如果在它出现的两个地方将
0.1
更改为 0.1f
,程序将打印“True”。