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