У меня есть программа для рисования, которая в основном использует плавающую точку для своей системы координат, поскольку пользователю разрешено работать с любой детализацией / масштабированием. То, что они рисуют, содержит линии, которые можно согнуть в созданных ими точках. Когда они перетаскивают одну точку поверх другой, они объединяются.
Чтобы выполнить «правильное» сравнение с плавающей запятой, мне нужно было бы найти некоторый диапазон, в котором можно считать точки одинаковыми. Поскольку пользователь может увеличивать до бесконечности и работать в пределах этого диапазона, и поскольку я не мог заставить кого-либо зафиксировать какой-либо диапазон, мы просто используем '==', чтобы увидеть, совпадают ли точки. Иногда возникает проблема, когда точки, которые должны быть одинаковыми, отклоняются на .000000000001 или около того (особенно около 0,0), но обычно это работает просто отлично. Должно быть трудно объединить точки без включенной оснастки ... или, по крайней мере, так работала оригинальная версия.
Иногда выкидывает группу тестирования, но это их проблема: p
Так или иначе, есть пример возможного разумного времени для использования '=='. Следует отметить, что решение заключается не столько в технической точности, сколько в пожеланиях клиента (или их отсутствии) и удобстве. Это не то, что должно быть так точно. Так что, если две точки не сливаются, когда вы ожидаете их? Это не конец света и не повлияет на «расчеты».