Seite 1 von 1

Floating Point Vorzeichen

Verfasst: Dienstag 2. November 2010, 22:16
von mzh
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.

Re: Floating Point Vorzeichen

Verfasst: Dienstag 2. November 2010, 22:33
von numerix
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