两个实数的比较大小(综合绝对误差与相对误差两种方法)
// 利用绝对误差与相对误差判断两个实数是否相等
bool doubleEqual(double a,double b){
double diff = fabs(a-b);
if(diff <1e-10) //绝对误差
return true;
return diff <= 1e-8 * max(fabs(a),fabs(b)); // 相对误差
}
放弃实数运算
- 更改乘除的顺序:如 a/b c 的计算,假设答案是整数可以变为 (ab)/c不过这个时候要考虑溢出。
- 判断两个点的距离是否的于r,可以先两边同时平方,再判断。
- 使用实数坐标的几何问题时,把坐标系横向和纵向扩展整数倍,就可以用来解决这类问题。