对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!
对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值
if (fabs(f1 - f2) < 预先指定的精度)
{
...
}
例子:
#define EPSILON 0.000001 //根据精度需要
if (fabs(fa - fb) < EPSILON)
{
printf("fa<fb\n");
}
fabs函数与abs函数
数学函数:fabs()
原型:extern float fabs(float x);
用法:#include <math.h>
功能:求浮点数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x
举例:
// fabs.c
#include <stdio.h>
#include <math.h>
int main()
{
float x;
x = -74.12;
printf("|%f|=%f\n", x, fabs(x));
x = 0;
printf("|%f|=%f\n", x, fabs(x));
x = 74.12;
printf("|%f|=%f\n", x, fabs(x));
getchar();
return 0;
}
输出:|-74.120003| = 74.120003
|0.000000| = 0.000000
|74.120003| = 74.120003
abs()求整数的绝对值:
#include <stdio.h>
#include <math.h>
int main()
{
int x = -10;
printf("%d", abs(x));
return 0;
}
输出:10