Wie würde ich einen Schwimmer in seine ‚Buchführung Form‘ umwandeln -Convert Schwimmer durch Komma getrennte Zeichenfolge
100028282.23 --> 100,028,282.23
100028282 --> 100,028,282.00
Gibt es eine Python-Methode, die dies tut?
Wie würde ich einen Schwimmer in seine ‚Buchführung Form‘ umwandeln -Convert Schwimmer durch Komma getrennte Zeichenfolge
100028282.23 --> 100,028,282.23
100028282 --> 100,028,282.00
Gibt es eine Python-Methode, die dies tut?
können Sie verwenden, um die locale.format()
Funktion, dies zu tun:
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.utf8')
'en_US.utf8'
>>> locale.format("%.2f", 100028282.23, grouping=True)
'100,028,282.23'
Beachten Sie, dass die Präzision geben: %.2f
Alternativ können Sie die locale.currency()
Funktion verwenden, die die LC_MONETARY
Einstellungen folgen:
>>> locale.currency(100028282.23)
'$100028282.23'
Super, danke! – David542
Als Alternative zu beerbajay 's hervorragende Antwort äh, einfache String Formatierung Arbeiten in 2.7+, ohne einen Import erforderlich:
>>> '{0:,.2f}'.format(24322.34)
'24,322.34'
Für monetäre Anwendungen, die dezimal Modul ist eine gute Wahl für Gleitpunktarithmetik. Um mit Komma dezimal Schwimmern anzuzeigen, finden Sie in das moneyfmt Rezept:
def moneyfmt(value, places=2, curr='', sep=',', dp='.',
pos='', neg='-', trailneg=''):
"""Convert Decimal to a money formatted string.
places: required number of places after the decimal point
curr: optional currency symbol before the sign (may be blank)
sep: optional grouping separator (comma, period, space, or blank)
dp: decimal point indicator (comma or period)
only specify as blank when places is zero
pos: optional sign for positive numbers: '+', space or blank
neg: optional sign for negative numbers: '-', '(', space or blank
trailneg:optional trailing minus indicator: '-', ')', space or blank
>>> d = Decimal('-1234567.8901')
>>> moneyfmt(d, curr='$')
'-$1,234,567.89'
>>> moneyfmt(d, places=0, sep='.', dp='', neg='', trailneg='-')
'1.234.568-'
>>> moneyfmt(d, curr='$', neg='(', trailneg=')')
'($1,234,567.89)'
>>> moneyfmt(Decimal(123456789), sep=' ')
'123 456 789.00'
>>> moneyfmt(Decimal('-0.02'), neg='<', trailneg='>')
'<0.02>'
"""
q = Decimal(10) ** -places # 2 places --> '0.01'
sign, digits, exp = value.quantize(q).as_tuple()
result = []
digits = map(str, digits)
build, next = result.append, digits.pop
if sign:
build(trailneg)
for i in range(places):
build(next() if digits else '0')
build(dp)
if not digits:
build('0')
i = 0
while digits:
build(next())
i += 1
if i == 3 and digits:
i = 0
build(sep)
build(curr)
build(neg if sign else pos)
return ''.join(reversed(result))
Speicher von Geldbeträgen als Schwimmer nicht so gut in erster Linie sein könnte. – NPE