我正在用两种不同的语言来回答同样的问题。得到了不同的结果。需要帮助以了解为什么会这样吗?
我用python编写了相同的代码,得到的结果与C预期的结果不同。
代码1:
{
float f = 0.1;
if (f == 0.1)
printf("YES\n");
else
printf("NO\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
代码2:
f = float()
f = 0.1
if (f == 0.1):
print("YES")
else:
print("NO")
Run Code Online (Sandbox Code Playgroud)
两者必须提供与否相同的输出。但是只有C给出了预期的输出,而Python给出的是YES。
在您的C代码中,将float 0.1与double 0.1 进行比较,其中float值首先转换为double,由于精度有限0.10000000149011612,该值与double值不同0.1。
在Python float中内部与doubleC中相同。double 0.1与double 0.1相同。
因此,Python提供了预期的输出,YES而C提供了不太明显的输出NO。