locale

Chema Cortes pych3m4 en gmail.com
Jue Oct 19 03:24:54 CEST 2006


El 2006/10/17, Antonio Prado <suporte en antonioprado.eti.br>:
> Estou tentando formatar uma string utilizando locale mas não estou tendo
> sucesso com a propriedade grouping.
>
> >>>locale.setlocale(locale.LC_ALL, '')
> 'pt_BR.UTF-8'
>
> >>>locale.format("%.2f", 12345678.1, True)
> '12345678,10'
>
> deveria ser:
> '12.345.678,10'
>
>
> Utilizo Linux/Ubuntu.
>
>
> Alguma idéia do que pode ser?

El "locale" brasileño (como el español) puede no tener separador de
miles para números y sí para moneda:

>>> locale.localeconv()['thousands_sep']
''
>>> locale.localeconv()['mon_thousands_sep']
'.'

El problema está que locale.format sólo utiliza el primero. Mejor
emplea el módulo 'decimal'. En la documentación encontrarás una receta
con la función "moneyfmt" que es más aconsejable.


chão!




Más información sobre la lista de distribución Python-es