Domanda

Perché?

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)'

Può & # 180; t può restituire $ -1.885,00?

È stato utile?

Soluzione

Le parentesi attorno a un numero per indicare che è un debito (cioè negativo), non un credito (positivo), sono una convenzione comune nella contabilità (immagino perché le parentesi sono più visibili di un piccolo meno / trattino di fronte, ed è cruciale per distinguere i debiti dai crediti ;-).

Quindi, non è sorprendente che molti locali esprimano quella convenzione come " modo corretto " per formattare numeri negativi. Se vuoi usare alcune parti delle convenzioni della tua locale, come il segno $ e le virgole, ma non altre, come le parentesi, dovrai usare abs (il tuo numero) invece del tuo solo numero come input per la locale. valuta, quindi, se il tuo numero < 0, fai una piccola manipolazione di stringhe per trovare la prima cifra e forma una nuova stringa con il trattino di fronte (o altre manipolazioni di stringhe, a seconda del modo desiderato per esprimere gli importi negativi - ad esempio il segno & Quot; meno " [trattino] potrebbe essere visualizzato prima del simbolo della valuta o alla destra dell'intera stringa).

Perché pensi che chiunque leggerà quell'output vuole alcune, ma non tutte le convenzioni del locale da applicare ad esso, comunque?

Altri suggerimenti

Nella tua locale, un numero racchiuso tra parentesi indica che è un numero negativo. Controlla questo in Pannello di controllo / Impostazioni internazionali e della lingua, probabilmente Python lo sta raccogliendo da lì.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top