|
>以下のプログラムでelse文の方が実行されてしまうので、if文の方を実行させるには
>どうすればいいのかという課題なんですが
floatのまま比較をする場合は、「f1とf2の差が十分小さな値である場合は一致していると見なす」、という取り決めをすることで解決します。これは数値演算の基礎です。
#include <stdio.h>
#include <math.h>
#define E 0.00001
main()
{
float f1,f2,a,b,c,d;
a = 700000.0;
b = 30000.0;
c = 7.0;
d = 0.3;
f1 = a / b;
f2 = c / d;
if (fabs(f1 - f2) <= E){printf("f1 == f2\n");}
else{printf("f1 != f2\n");}
}
|