Also etwa so:
Code: Alles auswählen
>>> tausenderpunktausgabe(-2134.98)
'-2.134,98'
Ich werde das Gefühl nicht los, dass es - mit dem richtigen Python Know-how - auch kurz und elegant geht.
Code: Alles auswählen
>>> tausenderpunktausgabe(-2134.98)
'-2.134,98'
Hallo pütone!pütone hat geschrieben:Ich habe vergeblich nach einer schon vorhandenen Funktion gesucht
Code: Alles auswählen
>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, "german")
'German_Germany.1252'
>>> locale.format("%.2f", -2134.98, grouping = True)
'-2.134,98'
>>>
Code: Alles auswählen
def numb_out1(n):
parts = list(str(abs(n)).replace(".",",").partition(","))
intg = ""
while parts[0]:
intg = parts[0][-3:]+"."+intg
parts[0] = parts[0][:-3]
return (n<0)*"-"+intg[:-1]+"".join(parts[1:])
Code: Alles auswählen
def numb_out2(n):
parts = str(abs(n)).replace(".",",").partition(",")
digits = list(parts[0])
pos = [p for p in range(len(digits)%3,len(digits),3) if p>0][::-1]
for p in pos: digits[p:p] = "."
return (n<0)*"-"+"".join(digits)+"".join(parts[1:])
Code: Alles auswählen
def numb_out3(n):
parts = str(abs(n)).replace(".",",").partition(",")
intg = " "[len(parts[0])%3:]+parts[0]
digits = [intg[p:p+3] for p in range(0,len(intg),3)]
return (n<0)*"-"+".".join(digits).strip(". ")+"".join(parts[1:]
Hallo pütone!pütone hat geschrieben:das ist ein echter Fortschritt
Ja, prima. Und als ich ihn eben (zunächst nur) überflogen habe, musste ich feststellen, dass ich diesen Thread auch schonmal in einem anderen Zusammenhang gelesen hatte - wusste ich aber nicht mehr.Dann gefällt dir dieser Thread bestimmt: http://www.python-forum.de/topic-371.html