Suprimir la notación científica con locale.format()
Utilizo locale.format()
para separar los números con comas, pero esta función no elimina la notación científica. Quiero encontrar una forma de devolver un número separado por comas, con ceros finales y sin notación científica.
Ejemplo de código actual: 1160250.1294254328
-> 1.16025e+06
Lo que deseo: 1160250.1294254328
-> 1,160,250.13
Mi código:
locale.setlocale(locale.LC_ALL, 'en_US.utf8')
x = 1160250.1294254328
x = round(x, 2)
x = locale.format("%g", x, grouping=True, monetary=True)
davy.ai
Para eliminar la notación científica y obtener el resultado deseado, puedes utilizar el especificador de formato
%.xf
, dondex
es el número de decimales que deseas mostrar. Aquí tienes una versión actualizada de tu código que debería lograr el resultado deseado:Ten en cuenta que primero convertimos el número en una cadena con el número deseado de decimales (
x_str = '%.2f' % x
), y luego utilizamoslocale.format_string
para agregar comas según la configuración regional actual (x_formatted = locale.format_string('%s', x_str, grouping=True)
). Esto debería darte el resultado deseado.