2 つの浮動小数点数を比較する小さな単純なコードがあります。
fabs を使用してみましたが、間違った奇妙な結果が得られます。何が間違いで、正しい形は何ですか?
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
void compareFloat(double a1, double a2)
{
if(fabs(a1 - a2) < DBL_EPSILON)
printf("a1 is smaller\n");
else
printf("a1 is larger\n");
}
int main()
{
float a1=0.0000004f, a2=0.0005f;
compareFloat(a1, a2);
}
このコードの間違いは何ですか? a1 is smaller
a1=0.004f と a2=0.0005f を設定しても常に印刷されます