double точками.
И при их сравнении(точек) бывает так, что почти равные числа компилятор считает за разные, отличаются только парой чисел там в конце после точки.
Но должно посчитать их за одинаковые...
Чё мне надо сделать с этими значениями для корректной проверки?
if (sequences[i].front().pos == sequences[j].back().pos) - такое должно работать, но увы.
Пробовал вариант:
if (std::pow(sequences[i].front().pos.x - sequences[j].back().pos.x, 2.0) < 1.0 && std::pow(sequences[i].front().pos.y - sequences[j].back().pos.y, 2.0) < 1.0)
Но также безуспешно...
Гугли сравнение вещественных чисел
https://en.cppreference.com/w/cpp/types/numeric_limits/epsilon
Обсуждают сегодня