Discussion:
Comas decimales y puntos de miles
Hystrix
2008-08-06 20:36:36 UTC
Permalink
Buenas, como andan?
Estoy trabajando con numeros desde Django y me surge un problema,
cuando uso, por ejemplo
'%.2f' % 2000.1
para darle formato a un numero el formato que le da usa punto para
separar los decimales y no pone separadores de miles.
Probe usando setlocale pero no cambio nada.
Existe una forma rapida y elegante de darle formato a un numero usando
comas para decimales y poniendo puntos para separar los miles?
Muchas gracias.
--
Hystrix
Facundo Batista
2008-08-06 20:43:54 UTC
Permalink
Post by Hystrix
Existe una forma rapida y elegante de darle formato a un numero usando
comas para decimales y poniendo puntos para separar los miles?
Podés copiar y usar la primer receta de acá [1], o al menos usarla de
inspiración...

Slds.

[1] http://docs.python.org/dev/library/decimal.html#recipes
--
. Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org/ar/
Manuel Kaufmann
2008-08-07 03:24:44 UTC
Permalink
On Wed, Aug 6, 2008 at 5:43 PM, Facundo Batista
Post by Facundo Batista
Post by Hystrix
Existe una forma rapida y elegante de darle formato a un numero usando
comas para decimales y poniendo puntos para separar los miles?
Podés copiar y usar la primer receta de acá [1], o al menos usarla de
inspiración...
Slds.
[1] http://docs.python.org/dev/library/decimal.html#recipes
Se veía venir una respuesta de Facu :)

Por otro lado, una pregunta. Veo en varios "ejemplos" de esa página las líneas

getcontext().prec += 2 # extra digits for intermediate steps
# se hace algo
getcontext().prec -= 2

Justamente para este caso no se implementó el:

with Decimal.ContextPrecition.up(2):
# se hace algo

No se como era el método de Decimal para eso, pero algo así :)
--
Kaufmann Manuel
Blog: http://humitos.wordpr
Manuel Kaufmann
2008-08-07 03:25:46 UTC
Permalink
Post by Manuel Kaufmann
# se hace algo
...Precision...
--
Kaufmann Manuel
Blog: http://humitos.wordpress.com/
PyAr: http://www.python.com.ar/
Gabriel Genellina
2008-08-07 05:08:27 UTC
Permalink
En Wed, 06 Aug 2008 17:36:36 -0300, Hystrix
Post by Hystrix
Buenas, como andan?
Estoy trabajando con numeros desde Django y me surge un problema,
cuando uso, por ejemplo
'%.2f' % 2000.1
para darle formato a un numero el formato que le da usa punto para
separar los decimales y no pone separadores de miles.
Probe usando setlocale pero no cambio nada.
No solo hay que usar setlocale, sino las funciones del modulo locale. (El
operador % de strings no lo toma en cuenta)

py> import locale
py> locale.setlocale(locale.LC_ALL, '')
'Spanish_Argentina.1252'
py> '%.2f' % 2000.1
'2000.10'
py> locale.format('%.2f', 2000.1, True)
'2.000,10'
py> locale.currency(2000.1)
'$ 2000,10'
py> locale.currency(2000.1, grouping=True)
'$ 2.000,10'
--
Gabriel Genellina
Hystrix
2008-08-07 22:42:43 UTC
Permalink
Post by Gabriel Genellina
Post by Hystrix
Buenas, como andan?
Estoy trabajando con numeros desde Django y me surge un problema,
cuando uso, por ejemplo
'%.2f' % 2000.1
para darle formato a un numero el formato que le da usa punto para
separar los decimales y no pone separadores de miles.
Probe usando setlocale pero no cambio nada.
No solo hay que usar setlocale, sino las funciones del modulo locale. (El
operador % de strings no lo toma en cuenta)
py> import locale
py> locale.setlocale(locale.LC_ALL, '')
'Spanish_Argentina.1252'
py> '%.2f' % 2000.1
'2000.10'
py> locale.format('%.2f', 2000.1, True)
'2.000,10'
py> locale.currency(2000.1)
'$ 2000,10'
py> locale.currency(2000.1, grouping=True)
'$ 2.000,10'
--
Gabriel Genellina
Tenes razón, recien hoy leyendo la documentacion de locale por otro
problema me di cuenta de eso.
Gracias a todos por las respuestas.
Post by Gabriel Genellina
---------------------------------------------------------------------
PyAr - Python Argentina - S
Continúe leyendo en narkive:
Loading...