小技巧—判断浮点数相等

小技巧—判断浮点数相等

实数域二分的判停条件是:l-r<=eps

eps是预定精度。

这里的话,很多同学(包括本蒟蒻)就会自然而然地认为这个就是判浮点数是否相等的。

实则不是。

由于浮点数的精度误差,这样的判断方法不是很科学,显得非常简单。

那么复杂科学的判断方式是什么呢?

是这样:

\[\frac{|a-b|}{\max(|a|,|b|)}\le eps \]

除变乘

就成了这样:

#include<cmath>
#include<algorithm>
//Attention
abs(a-b)<=eps*max(abs(a),abs(b));

差不多是这样。

posted @ 2020-10-10 19:31  Seaway-Fu  阅读(491)  评论(0编辑  收藏  举报