浮点数比较

点击查看代码
#include<cstdio>
#include<cmath> //使用fabs()
#pragma warning(disable:4996)

 //注意:如果a和b是一个表达式,而不是一个变量,在宏定义中要给a和b单独加一个括号,保证其表达式内部的优先级不出错
const double eps = 1e-8; //定义一个极小值常量eps=10^(-8)
#define Equ(a,b) (fabs(a-b)<eps) //a-b的绝对值小于eps,则认为a==b
#define More(a,b) (a-b>eps) //a>b+eps,则认为a>b
#define MoreEqu(a,b) ((a-b)>(-eps)) //a>=b-eps,则认为a>=b
#define Less(a,b) ((a-b)<(-eps)) //a<b-eps,则认为a<b
#define LessEqu(a,b) ((a-b)<eps) //a<=b+eps,则认为a<=b

int main() {
	double a = 1.23;
	if (Equ(a, 1.23)) { //比较a和1.23是否相等
		printf("相等\n");
	}
	else {
		printf("不相等\n");
	}

	return 0;
}
posted @ 2022-09-30 22:57  zhaoo_o  阅读(9)  评论(0编辑  收藏  举报