diff --git a/pyquil/quilatom.py b/pyquil/quilatom.py index 8028068e6..fd7b7f026 100644 --- a/pyquil/quilatom.py +++ b/pyquil/quilatom.py @@ -419,13 +419,15 @@ def format_parameter(element: ParameterDesignator) -> str: out += repr(r) if i == 1: - if not np.isclose(r, 0, atol=1e-14): - raise ValueError(f"Invalid complex number: {element}") - out = "i" + if np.isclose(r, 0, atol=1e-14): + out = "i" + else: + out += "+i" elif i == -1: - if not np.isclose(r, 0, atol=1e-14): - raise ValueError(f"Invalid complex number: {element}") - out = "-i" + if np.isclose(r, 0, atol=1e-14): + out = "-i" + else: + out += "-i" elif i < 0: out += repr(i) + "i" elif r != 0: diff --git a/test/unit/test_parameters.py b/test/unit/test_parameters.py index 355856b77..827a0679a 100644 --- a/test/unit/test_parameters.py +++ b/test/unit/test_parameters.py @@ -24,6 +24,9 @@ def test_format_parameter(): (-1j, "-i"), (1e-15 + 1j, "i"), (1e-15 - 1j, "-i"), + (2 + 1j, "2.0+i"), + (2 - 1j, "2.0-i"), + (-3 + 1j, "-3.0+i"), ] for test_case in test_cases: