2017-02-10 22 views
1

是否可以格式化複數以便實數部分在零時不顯示?Python複數數字零部分的格式化

我目前使用'{:.3g}'.format(x)這確實抑制不必要的零了偉大的工作,但是我還是形式0+0.5j,應該被扔進0.5j的數字。

謝謝!

回答

1

strrepr似乎工作:

>>> str(0.5j) 
'0.5j' 

>>> repr(0.5j) 
'0.5j' 
+0

他們的工作就像一個魅力,但你可以給我一個提示如何只顯示小數點後三位,例如? – Faser

+0

@Faser嗯,我不太瞭解格式化複雜數字,我只想到了像'{:.3g}'剝離'0+'這樣的黑客。format(x).lstrip('0+ '*(x.real == 0))'或將數字四捨五入爲str(複數(round(x.real,3),round(x.imag,3)))''。 –