Description
AreEqual uses == for double comparison which can cause floating-point precision issues.
Current Code
return Convert.ToDouble(left) == Convert.ToDouble(right);
Solution
Use tolerance-based comparison:
Math.Abs(Convert.ToDouble(left) - Convert.ToDouble(right)) < 1e-10