Skip to content
3 changes: 1 addition & 2 deletions qiskit/circuit/parameterexpression.py
Original file line number Diff line number Diff line change
Expand Up @@ -383,10 +383,9 @@ def __eq__(self, other):
Returns:
bool: result of the comparison
"""
from sympy import srepr
if isinstance(other, ParameterExpression):
return (self.parameters == other.parameters
and srepr(self._symbol_expr) == srepr(other._symbol_expr))
and self._symbol_expr.equals(other._symbol_expr))
elif isinstance(other, numbers.Number):
return (len(self.parameters) == 0
and complex(self._symbol_expr) == other)
Expand Down
8 changes: 8 additions & 0 deletions test/python/circuit/test_parameters.py
Original file line number Diff line number Diff line change
Expand Up @@ -1546,6 +1546,14 @@ def test_parameter_expression_equal_to_identical(self):

self.assertEqual(expr1, expr2)

def test_parameter_expression_equal_floats_to_ints(self):
"""Verify an expression with float and int is identical."""
theta = Parameter('theta')
expr1 = 2.0 * theta
expr2 = 2 * theta

self.assertEqual(expr1, expr2)

def test_parameter_expression_not_equal_if_params_differ(self):
"""Verify expressions not equal if parameters are different."""
theta1 = Parameter('theta')
Expand Down