如何舍入一个复数?

pra*_*rav 5 python rounding complex-numbers python-3.x

如何将一个复数(例如1.9999999999999998-2j)取整为2-2j

当我尝试使用

print(round(x,2))
Run Code Online (Sandbox Code Playgroud)

这显示了

Traceback (most recent call last):
  File "C:\Python34\FFT.py", line 22, in <module>
    print(round(x,2))
TypeError: type complex doesn't define __round__ method
Run Code Online (Sandbox Code Playgroud)

fal*_*tru 8

分别将实部和虚部圆整并合并:

>>> num = 1.9999999999999998-2j
>>> round(num.real, 2) + round(num.imag, 2) * 1j
(2-2j)
Run Code Online (Sandbox Code Playgroud)


Zer*_*eus 6

如果你想要做的是代表将数值如图所示,而不是修改本身的价值,以下工作:

>>> x=1.9999999999999998-2j
>>> print("{:g}".format(x))
2-2j
Run Code Online (Sandbox Code Playgroud)

请参阅:格式规范迷你语言