Ich weiß, dass theoretisch Ziffern in großen Zahlen können von Tausenden zur besseren Lesbarkeit gruppiert werden:Wie setze ich ein benutzerdefiniertes Tausendertrennzeichen?
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.format('%d', 1234567890, grouping=True)
'1,234,567,890'
>>> "{:n}".format(1234567890)
'1,234,567,890'
jedoch überraschend, wird dies für jede locale nicht:
>>> locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')
'pl_PL.UTF-8'
>>> locale.format('%d', 1234567890, grouping=True)
'1234567890'
>>> "{:n}".format(1234567890)
'1234567890'
Warum Zahlen sind nicht formatiert? Ich finde das komisch. Ich würde erwarten, dass etwas wie 1 234 567 890
gedruckt wird.
Pro Format Specification Mini-Language können wir explizit zwei mögliche Trennzeichen erzwingen: ein Komma ,
und einen Unterstrich _
. Leider ist ein Komma für Polnisch nicht geeignet, da es dort als Dezimaltrennzeichen verwendet wird, und eine Zahl wie 1_234_567_890
würde für die meisten Leute seltsam aussehen.
Können wir irgendwie einen schussfreien Raum erzwingen, der als Tausendertrennzeichen verwendet wird?
Workaround: '" 1_234_567_890 ".replace (" _ ",". ') 'Gibt Ihnen, was Sie wollen – inspectorG4dget
' locale.currency (var, symbol = False, grouping = True) ', da' pl_PL' enthält '.' Trennzeichen für Geldwerte. – TemporalWolf
Mögliches Duplikat von [Wie wird die Nummer mit Kommas als Tausendertrennzeichen gedruckt?] (Http://stackoverflow.com/questions/1823058/how-to-print-number-with-commas-as-thoundands-separators) – Prune