Pregunta

¿Por qué?

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

¿Puede & # 180; t devolver $ -1.885,00?

¿Fue útil?

Solución

Los paréntesis alrededor de un número para indicar que es un débito (es decir, negativo), no un crédito (positivo), son una convención común en la contabilidad (supongo que los paréntesis son más visibles que un pequeño signo menos / guión al frente, y es crucial para distinguir los débitos de los créditos ;-).

Por lo tanto, no es sorprendente que muchas configuraciones regionales expresen esa convención como " forma correcta " para formatear números negativos. Si desea usar algunas partes de las convenciones de su localidad, como el signo $ y las comas, pero no otras, como los paréntesis, tendrá que usar abs (su número) en lugar de solo su número como entrada para la localización. moneda, entonces, si su número < 0, realice una pequeña manipulación de cadena para encontrar el primer dígito y forme una nueva cadena con el guión delante (u otras manipulaciones de cadena, dependiendo de la forma deseada para expresar cantidades negativas, por ejemplo, el signo & Quot; menos " [guión] podría ir antes del símbolo de moneda, o a la derecha de toda la cadena).

¿Por qué crees que quien quiera que lea ese resultado quiere que se le apliquen algunas pero no todas las convenciones locales, por cierto?

Otros consejos

En su localidad, rodear un número entre paréntesis indica que es un número negativo. Verifique esto en el Panel de control / Configuración regional y de idioma, Python probablemente lo recoja desde allí.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top