如何判断浮点数是否相等

对两个浮点数判断大小和是否相等不能直接用==来判断,会出错!明明相等的两个数比较反而是不相等!

对于两个浮点数比较只能通过相减并与预先设定的精度比较,记得要取绝对值

if (fabs(f1 - f2) < 预先指定的精度)
{
    ...
}

例子:

#define EPSILON 0.000001 //根据精度需要  
if (fabs(fa - fb) < EPSILON)
{
    printf("fa

fabs函数与abs函数

数学函数:fabs()
原型:extern float fabs(float x);
用法:#include
功能:求浮点数x的绝对值
说明:计算|x|, 当x不为负时返回x,否则返回-x

举例:

// fabs.c  
#include   
#include   

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   
#include   
int main()
{
    int x = -10;
    printf("%d", abs(x));
    return 0;
}
输出:10


你可能感兴趣的:(C++)