zahl formatieren...

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
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 17. März 2005, 16:45

Wie Wandel ich eine beliebige Zahl zu einem String mit zwei Stellen hinter dem Komma (statt Punkt) um?

(Um halt EURO Werte richtig Anzeigen zu lassen)

Mein Schnellschuß:

Code: Alles auswählen

def format_number( value ):
    return ( "%1.2f" % value ).replace( ".", "," )

testwerte = ( 0, 1, 10.3, 11.55, 0.986 )

for i in testwerte:
    print i,"->", format_number( i )

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Donnerstag 17. März 2005, 17:29

Hi!

Na funktioniert doch eh! Aber was genau ist der Unterschied zwischen "%1.2f" und "%.2f"?

Gruß, mawe
BlackJack

Donnerstag 17. März 2005, 22:51

Wenn Du auch noch 1000er Punkte haben möchtest, dann schau Dir mal 'locale.format()' an. Entweder als Funktion oder den Quelltext.

Code: Alles auswählen

In [118]: locale.setlocale(locale.LC_ALL, 'de_DE.utf-8')
Out[118]: 'de_DE.utf-8'

In [119]: locale.format("%.2f", 9999999.59, True)
Out[119]: '9.999.999,59'
Antworten