У меня есть вещественные числа a, b и с.
Нужно чтобы выполнялось выражение c == (b - a), проблема возникает именно с "равно".
Думал использовать fabs((b - a) - c) < DBL_EPSILON, но не выходит.
// ..
AreClose(b - a, c);
// ...
static bool AreClose(double value1, double value2)
{
//in case they are Infinities (then epsilon check does not work)
if (value1 == value2) return true;
// This computes (|value1-value2| / (|value1| + |value2| + 10.0)) < DBL_EPSILON
double eps = (fabs(value1) + fabs(value2) + 10.0) * DBL_EPSILON;
double delta = value1 - value2;
return(-eps < delta) && (eps > delta);
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей