Estoy buscando formatear un número como 188518982.18 a £ 188,518,982.18 usando Python.
¿Cómo puedo hacer esto?
python
formatting
currency
CarrilesHijo
fuente
fuente
locale
uso del módulo del valor de la moneda y las propiedades de visualización de esa moneda.Respuestas:
Ver el módulo de configuración regional .
Esto hace el formato de moneda (y fecha).
fuente
locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
y funcionó perfectamente.Nuevo en 2.7
http://docs.python.org/dev/whatsnew/2.7.html#pep-0378
fuente
$ 123,456.78
veces sin embargo. Editar: markdown elimina los espacios adicionales, pretende que hay más entre $ y los númerosNo estoy seguro de por qué no se menciona más en línea (o en este hilo), pero el paquete Babel (y las utilidades de Django) de los chicos de Edgewall es increíble para el formato de moneda (y muchas otras tareas de i18n). Es bueno porque no sufre la necesidad de hacer todo a nivel mundial, como el módulo central de Python.
El ejemplo que dio el OP sería simplemente:
fuente
locale
argumentoformat_currency
puede usarse para abordar esto, pero o eso no estaba en el documento hace cuatro años (cuando escribí ese comentario) o simplemente probé el código de esta respuesta tal como está sin consultar el documento.Esta es una publicación antigua, pero acabo de implementar la siguiente solución que:
Código:
Salida:
Y para el póster original, obviamente, simplemente cambie
$
por£
fuente
print(f'Value is: ${value:,.2f}'.replace('$-', '-$'))
Mi configuración regional parecía incompleta, así que también miré más allá de esta respuesta SO y encontré:
http://docs.python.org/library/decimal.html#recipes
Independiente del sistema operativo
Solo quería compartir aquí.
fuente
def moneyfmt(value, places=2, curr='', sep=',', dp='.', pos='', neg='-', trailneg='')
?Si está utilizando OSX y aún no ha configurado el módulo de configuración regional, esta primera respuesta no funcionará, recibirá el siguiente error:
Para remediar esto, deberá utilizar lo siguiente:
fuente
"{:0,.2f}".format(float(your_numeric_value))
en Python 3 hace el trabajo; da algo como una de las siguientes líneas:fuente
Si fuera usted, usaría BABEL: http://babel.pocoo.org/en/latest/index.html
fuente
format_currency
.Oh, esa es una bestia interesante.
He dedicado un tiempo considerable a hacerlo bien, hay tres problemas principales que difieren de un lugar a otro: - símbolo de moneda y dirección - separador de miles - punto decimal
He escrito mi propia implementación bastante extensa de esto, que es parte del marco de kiwi python, consulte la fuente LGPL: ed aquí:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
El código es ligeramente específico de Linux / Glibc, pero no debería ser demasiado difícil de adoptar en Windows u otros Unix.
Una vez que tenga eso instalado, puede hacer lo siguiente:
Que luego te dará:
o
Dependiendo de la configuración regional seleccionada actualmente.
El punto principal que esta publicación tiene sobre la otra es que funcionará con versiones anteriores de python. locale.currency se introdujo en python 2.5.
fuente
10,50 kr
lugar dekr 10,50
.#impresión de la variable 'Total:' en un formato similar a este '9,348.237'
donde '{: 7, .3f}' es el número de espacios para formatear el número en este caso es un millón con 3 puntos decimales. Luego agrega el '.format (zum1). El zum1 es la variable que tiene el número grande para la suma de todos los números en mi programa particular. La variable puede ser cualquier cosa que decidas usar.
fuente
Inspirado en el código anterior: D
fuente
He llegado a mirar lo mismo y descubrí que Python-money no lo usó realmente todavía, pero tal vez una combinación de los dos sería buena
fuente
Una lambda para calcularlo dentro de una función, con la ayuda de la respuesta de @ Nate
y entonces,
fuente
Código simple de python!
fuente
"$2,129.1468284147656"
,"$10,948.3742933"
,"$1,0908"
. Garbles la cuerda.