Python locale Währung und negative Zahlen
Frage
Warum?
C:\path\>manage.py shell
Python 2.5.4 (r254:67916, Dec 23 2008, 15:10:54) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.getlocale()
('Spanish_Colombia', '1252')
>>> locale.currency( 1885, grouping=True )
'$ 1.885,00'
>>> locale.currency( -1885, grouping=True )
'($ 1.885,00)'
Kann nicht return $ -1.885,00?
Lösung
in Klammern eine Zahl, um anzuzeigen, es ist eine Debit (dh negativ), kein Kredit (positiv), eine gemeinsame Konvention in der Buchhaltung ist (ich denke, weil die Klammern mehr sichtbar als ein kleines Minus / Bindestrich voran sind, und es ist zu unterscheiden Abbuchungen von Krediten entscheidend; -).
So ist es nicht verwunderlich, dass viele Gegenden, dass die Konvention als „richtiger Weg“ ausdrücken negative Zahlen zu formatieren. Wenn Sie einige Teile Ihrer locale Konventionen, wie das $ -Zeichen und die Kommas verwenden möchten, andere aber nicht, wie die Klammern, müssen Sie abs verwenden (IhreNummer) statt nur IhreNummer als Eingabe für locale. Währung, dann, wenn IhreNummer <0, eine wenig String-Manipulation die erste Stelle zu finden und mit dem Schuss vor ihm (oder anderen Stringmanipulationen, je nach gewünschter Art und Weise eine neue Zeichenfolge bildet negative Beträge auszudrücken - zB die Zeichen „minus“ [Bindestrich] vor dem Währungssymbol gehen könnte, oder auf dem rechte Seite des ganzen String).
Warum denken Sie, dass wer auch immer los zu werden, zu lesen, dass die Ausgabe einige will, aber nicht alle der Konventionen des Gebietsschemas, um es durch die Art und Weise anwenden?
Andere Tipps
In Ihrem Standort, eine Zahl mit Klammern umgeben gibt es eine negative Zahl. Aktivieren Sie diese Option in der Systemsteuerung / Regions- und Spracheinstellungen, Pythons Kommissionierung es wahrscheinlich von dort oben.