比如针对两个浮点数 a 和 b 求最大值,是直接
double a = 0.0001;
double b = 0.000001;
double c = std::max(a, b);
还是必须加上精度判断
constexpr double EPS = 1e-8;
inline int sgn(const double &x) {
if (x > EPS) return 1;
if (x > -EPS) return 0;
return -1;
}
inline const static
double &doubleMax(const double &l, const double &r) {
return sgn(l - r) >= 0 ? l : r;
}
double a = 0.0001;
double b = 0.000001;
double c = doubleMax(a, b);
最近在学计算几何 所以精度问题很重要 想确认下