¿Cómo puedo formatear 1000000
en 1.000.000
en Python? donde el '.' es el separador de miles de decimales.Agregue separadores de millares 'decimal-mark' a un número
Respuesta
Si desea agregar un separador de miles, puede escribir:
>>> '{0:,}'.format(1000000)
'1,000,000'
pero sólo funciona en Python 2.7 y superior.
Ver format string syntax.
En versiones anteriores, puede utilizar locale.format():
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_AU.utf8'
>>> locale.format('%d', 1000000, 1)
'1,000,000'
la ventaja añadida de utilizar locale.format()
es que va a utilizar separador de miles de su localidad, por ejemplo,
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE.utf-8')
'de_DE.utf-8'
>>> locale.format('%d', 1000000, 1)
'1.000.000'
Si está trabajando con monedas, también puede usar babel.numbers.format_currency helper. – semente
Para flotantes, la sintaxis es '{: 6, .2f}' donde '6' es el ancho del campo y' 2' es la precisión. La colocación de la coma me hizo tropezar un poco. – nathanielobrown
Puede verificar todas las configuraciones regionales instaladas con "$ locale -a", una instalación predeterminada de Ubuntu, por ejemplo, solo tendrá en_US, por lo que esta no es una estrategia viable. – xApple
Realmente no lo entendí; pero aquí está lo que entiendo:
Quiere convertir 1123000 a 1,123,000. Puede hacerlo mediante el uso de formato:
Ejemplo:
>>> format(1123000,',d')
'1,123,000'
El lenguaje en su respuesta es algo confuso. Quizás podrías mejorarlo? – Zero3
Sólo extiende la respuesta un poco aquí :)
que tenía que ambos tienen un separador de millares y limitan la precisión de un número de coma flotante.
Esto se puede lograr mediante el uso de la cadena siguiente formato:
> my_float = 123456789.123456789
> "{:0,.2f}".format(my_float)
'123,456,789.12'
Esto describe mini-lenguaje de la format()
de -specifier:
[[fill]align][sign][#][0][width][,][.precision][type]
Fuente: https://www.python.org/dev/peps/pep-0378/#current-version-of-the-mini-language
¿Y si quisiera obtener la siguiente salida: ''123.456.789,12''? –
@ dot.Py podría establecer una configuración regional apropiada 'locale.setlocale (locale.LC_ALL, 'de_DE.utf-8')' y luego usar '(" {:.% Dn} "% (math.log10 (my_float) + 3)). Format (my_float) 'sin embargo, la cadena de formato 'n' es el equivalente a la configuración regional de 'g' en lugar de 'f', por lo que el campo de precisión se vuelve desordenado. – Duncan
Usando itertools
puede dar usted un poco más de flexibilidad:
>>> from itertools import zip_longest
>>> num = "1000000"
>>> sep = "."
>>> places = 3
>>> args = [iter(num[::-1])] * places
>>> sep.join("".join(x) for x in zip_longest(*args, fillvalue=""))[::-1]
'1.000.000'
Aquí solo hay una respuesta alternativa. Puede usar el operador de división en pitón y por medio de una lógica extraña Aquí está el código
i=1234567890
s=str(i)
str1=""
s1=[elm for elm in s]
if len(s1)%3==0:
for i in range(0,len(s1)-3,3):
str1+=s1[i]+s1[i+1]+s1[i+2]+"."
str1+=s1[i]+s1[i+1]+s1[i+2]
else:
rem=len(s1)%3
for i in range(rem):
str1+=s1[i]
for i in range(rem,len(s1)-1,3):
str1+="."+s1[i]+s1[i+1]+s1[i+2]
print str1
salida
1.234.567.890
Sobre la base de la respuesta de Mikel, he implementado su solución como esta en mi parcela matplotlib. Pensé que algunos podrían encontrarlo útil:
ax=plt.gca()
ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, loc: locale.format('%d', x, 1)))
- 1. ¿Cómo agrego mil separadores a un número en JavaScript?
- 2. Java agregue ceros a un número
- 3. Opuesto a String.Split con separadores (.net)
- 4. Separadores de URL válidos
- 5. Separadores de ListView que usan un CursorAdapter
- 6. Agregue un número aleatorio entre 30 y 300 a un campo existente
- 7. Django: agregue un campo a un modelo
- 8. jquery agregue un fundido a un .addClass
- 9. Perl Handling Directorio Separadores
- 10. Agregar separadores en DropDownList
- 11. Separadores de ruta Python ZipFile
- 12. Regex: agregue espacio si la letra es adyacente a un número
- 13. Agregue un esquema XML a Visual Studio
- 14. Agregue un int a std :: string
- 15. Agregue argumento adicional a un NSPredicate existente
- 16. Agregue un archivo .asmx a asp.net MVC?
- 17. Agregue permanentemente un directorio a PYTHONPATH
- 18. Agregue un onBlur a todos los elementos de formulario
- 19. Personalización de separadores de palabras en vi
- 20. La manera más fácil para dar formato a un número con separadores de miles a un NSString según la configuración regional
- 21. Agregue dinámicamente elementos a una listaVer Android
- 22. C++ función ifstream y separadores de campo
- 23. Python: dividir cadena por lista de separadores
- 24. OpenCV Agregue columnas a una matriz
- 25. Agregue el parámetro a dataAdapter.fill()
- 26. Vista de lista de Android con separadores
- 27. Agregue un control de usuario a una ventana de wpf
- 28. Agregue controles personalizados a MoviePlayer
- 29. Agregue localizador numérico a jqGrid
- 30. Agregue textViews dinámicamente a linearLayout
Por favor, aclare su pregunta. Muestre un código, mencione el tipo de datos del objeto que desea imprimir, dé como resultado el resultado. –
@SvenMarnach: ¡En segundo lugar! – Trufa
No puede tener más de un punto decimal en un número. ¿Qué se supone que significa '1.000.000'? ¿Te refieres a comas? –