#include<stdio.h>
int main()
{
float a,b;
a=4.375;
b=4.385;
if(a==4.375)
printf("YES\n");
else
printf("NO\n");
if(b==4.385)
printf("YES\n");
else
printf("NO\n");
return 0;
}
此代码的答案:
YES
NO
我一直在想,如果我将浮点数与双值进行比较。它永远不会匹配它。除非 value 是纯整数。但是这里 float "a" 有 4.375 是准确的,但 "b" 没有
printf("%0.20f\n",a);
printf("%0.20f\n",b);
This prints :
4.37500000000000000000
4.38500022888183593750
but if i print
printf("%0.20f\n",4.475);
It prints 4.47499990463256835938
这种四舍五入的效果如何在某些而不是在其他中显示出来。
谁能解释一下。“WE”应该如何判断浮点变量中的值何时与其中包含的值匹配,何时不匹配?