Всем доброй ночи. Ребят, подскажите, пожалуйста, в каких случаях моя реализация функции сравнения будет работать некорректно(в реальном использовании сравниваться будут double'ы с точностью до 8-10 знака)
bool compare_doubles(const double const* one, const double const* two, unsigned int float_points)
{
assert(one != NULL);
assert(two != NULL);
assert(float_points > 0);
unsigned int multiplexor = 1;
for (unsigned int index = 0; index < float_points; ++index)
multiplexor *= 10;
return ((int)((*one - *two) * multiplexor)) == 0;
}
Я читал мнения и разработки других людей. К примеру обсуждение тут: http://stackoverflow.com/questions/17333/most-effective-way-for-float-and-dou... , но не могу найти нужную реализацию :(