#include <stdio.h>
#include <math.h>
#define MIN 0.00001
char is_equal(double a, double b)
{
int c;
c = abs(a-b);
//小于某个精度时候返回1
if (c < MIN)
{
return 1;
}
return 0;
}
int main(void)
{
double a = 1.0;
double sum = 0.0;
int i;
for (i = 0; i < 10; i++)
{
sum += 0.1;
}
printf("sum = %f, a = %f\n", sum, a);
//正确比较浮点数的方法
printf("right way:\n");
if (is_equal(a, sum))
{
printf("equal\n");
}
else
{
printf("ne\n");
}
//错误比较浮点数的方法
printf("wrong way:\n");
if (sum == a)
{
printf("eq\n");
}
else
{
printf("ne\n");
}
return 0;
}
浮点数比较
最新推荐文章于 2023-03-14 11:50:37 发布