2017-02-10 1 views
1

Est-il possible de formater un nombre complexe de telle sorte que la partie réelle ne soit pas affichée si elle est nulle?Python Complex Number Formatage de la partie imaginaire nulle

J'utilise actuellement '{:.3g}'.format(x) qui fait un excellent travail de supprimer des zéros inutiles, mais je reçois encore des numéros de la forme 0+0.5j, qui devrait être jeté dans 0.5j.

Merci!

Répondre

1

str et repr semblent fonctionner:

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

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

Ils fonctionnent comme un charme, mais pourriez-vous me donner une idée comment afficher uniquement trois chiffres après la virgule, par exemple? – Faser

+0

@Faser Hmm, je ne connais pas grand-chose au formatage des nombres complexes, je suis seulement arrivé avec des hacks comme enlever le '0+' avec ''{: .3g}'. Format (x) .lstrip ('0+ '* (x.real == 0)) 'ou en arrondissant le nombre comme' str (complexe (round (x.real, 3), round (x.imag, 3))) '. –