#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
float と double の値を比較するといつも思っていました。それは決して一致しません。値が純粋な整数でない限り。しかし、ここではフロート "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
この丸め効果は、あるものではどのように示され、他のものではどのように示されていますか。
誰でもこれを説明できますか。float変数の値がそれに含まれる値と一致する場合と一致しない場合、「WE」はどのように判断する必要がありますか?