看下面两个代码,告诉我答案差异很大的原因。
#include<stdio.h>
int main() {
float a = 0.9;
if(a<0.9)
printf("hi"); // This will be the answer
else
printf("bye");
return 0;
}
如果我们将 0.9 更改为 0.8,则会打印 else 的语句:
#include<stdio.h>
int main() {
float a = 0.8;
if(a<0.8)
printf("hi");
else
printf("bye");//this will be the answer
return 0;
}
那么为什么当我们只改变一个数字时这个输出就会改变呢?
此错误是由于浮点精度造成的,并且因为您正在比较float
键入double
价值。尝试将它与浮点文字进行比较:if(a<0.8f)
我建议您阅读以下内容维基百科文章,它详细解释了您的错误发生的原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)