C 标准库 - <float.h>

FLT_EPSILON 表示 float 类型能区分的最小相对精度,比 1.0 大一点的数到 1.0 的最小差。

定义

#define FLT_EPSILON  1.19209290e-07F
#define DBL_EPSILON  2.2204460492503131e-16

定义于 <float.h>,是浮点类型的最小相对精度。

用法

#include <stdio.h>
#include <float.h>

int main() {
    printf("FLT_EPSILON: %e\n", FLT_EPSILON);
    printf("DBL_EPSILON: %e\n", DBL_EPSILON);
    return 0;
}

输出:

FLT_EPSILON: 1.192093e-07
DBL_EPSILON: 2.220446e-16

注意事项

浮点比较时用 EPSILON 做容差,如 fabs(a-b) < FLT_EPSILON。