int main()
{
float f = 0.1;
if (f == 0.1)
printf("True");
else
printf("False");
}
我只是c的初学者。我不明白上述程序的行为。输出为假。为什么??
0.1
is a double
文字。
As 0.1
不能精确地用浮点表示,afloat
设置为 0.1 将比较 false 和 adouble
设置为 0.1。
如果您使用float
文字:0.1f
(注意后缀f
:不要与变量名混淆):
float foo /*renamed for clarity*/= 0.1;
if (foo == 0.1f){
/*this will compare true*/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)