小数精度的一些问题

对于小数精度要求比较高的题,常常需要用技巧替换掉一些运算

比如:定义 eps = 1e-8

那么 x == 0 就要变成 abs(x) < eps

 x > y 就要变成 x-y > eps

方便起见,可以定义一个 enlarge 函数

int enl(double x){
  return x>eps?1:x<-eps?-1:0; }

这样的话,x==y 就写成 enl(x-y)==0;

     x > y 就写成 enl(x-y) ==1

原理应该比较清楚吧。。

 

 完蛋了!最近发现有的题不用这个直接比较还做得对,加了就错!

 

 

斜率的话建议转换为乘法运算(会爆long long,开 double )

posted @ 2021-05-21 21:14  Sherlockk  阅读(153)  评论(0)    收藏  举报