Я знаю, что числа с плавающей точкой лучше сравнивать в определенном интервале. Но почему в Microsoft реализация комплексных чисел использует строгие сравнения для оператора ==
?
Исходный код:
public static bool operator ==(Complex left, Complex right)
{
return ((left.m_real == right.m_real) && (left.m_imaginary == right.m_imaginary));
}
Моя попытка:
public static bool operator ==(Complex left, Complex right)
{
return ((Math.Abs(left.m_real - right.m_real) < EPS) &&
(Math.Abs(left.m_imaginary - right.m_imaginary) < EPS));
}