Floating Point Vorzeichen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mzh
User
Beiträge: 295
Registriert: Dienstag 3. März 2009, 15:27
Wohnort: ZH

Hallo zusammen
Wie erreicht man, dass bei der Ausgabe die unnötigen Vorzeichen nicht ausgegeben werden?

Code: Alles auswählen

>>> for i in range(11):
...     print "sin(%2.1i*pi) = %5.2f" % (i,sin(i*pi))
... 
sin( 0*pi) =  0.00
sin( 1*pi) =  0.00
sin( 2*pi) = -0.00
sin( 3*pi) =  0.00
sin( 4*pi) = -0.00
sin( 5*pi) =  0.00
sin( 6*pi) = -0.00
sin( 7*pi) =  0.00
sin( 8*pi) = -0.00
sin( 9*pi) =  0.00
sin(10*pi) = -0.00
>>> 
Und das wurde mit Python 2.6.5. erstellt, nicht mit Python 3.*.
Vielen Dank für Hinweise.
[url=http://www.proandkon.com]proandkon.com[/url]
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Eine schöne Lösung fällt mir dazu nicht ein. Eine von den hässlichen Varianten wäre:

Code: Alles auswählen

>>> for i in range(11):
...   print "sin(%2.1i*pi) = %5.2f" % (i,(lambda x: abs(x) if abs(x) < 1e12 else x)(sin(i*pi)))
... 
sin( 0*pi) =  0.00
sin( 1*pi) =  0.00
sin( 2*pi) =  0.00
sin( 3*pi) =  0.00
sin( 4*pi) =  0.00
sin( 5*pi) =  0.00
sin( 6*pi) =  0.00
sin( 7*pi) =  0.00
sin( 8*pi) =  0.00
sin( 9*pi) =  0.00
sin(10*pi) =  0.00
Antworten