Aquí está mi código:
x = 1.0
y = 100000.0
print x/y
Mi cociente se muestra como 1.00000e-05
.
¿Hay alguna forma de suprimir la notación científica y hacer que se muestre como 0.00001
? Voy a utilizar el resultado como una cadena.
Aquí está mi código:
x = 1.0
y = 100000.0
print x/y
Mi cociente se muestra como 1.00000e-05
.
¿Hay alguna forma de suprimir la notación científica y hacer que se muestre como 0.00001
? Voy a utilizar el resultado como una cadena.
Usando la nueva versión ''.format
(también recuerda especificar cuántos dígitos después del .
deseas mostrar, esto depende de lo pequeño que sea el número flotante). Mira este ejemplo:
>>> a = -7.1855143557448603e-17
>>> '{:f}'.format(a)
'-0.000000'
como se muestra arriba, ¡el valor predeterminado son 6 dígitos! Esto no es útil para nuestro caso de ejemplo, por lo que en su lugar podríamos usar algo como esto:
>>> '{:.20f}'.format(a)
'-0.00000000000000007186'
A partir de Python 3.6, esto se puede simplificar con la nueva cadena de formato literal, de la siguiente manera:
>>> f'{a:.20f}'
'-0.00000000000000007186'
La mayoría de las respuestas anteriores requieren que especifiques la precisión. Pero ¿qué pasa si quieres mostrar floats de esta manera, sin ceros innecesarios:
1
0.1
0.01
0.001
0.0001
0.00001
0.000001
0.000000000001
numpy
tiene una respuesta: np.format_float_positional
import numpy as np
def format_float(num):
return np.format_float_positional(num, trim='-')
'%f' % (x/y)
pero necesitas gestionar la precisión por ti mismo. por ejemplo,
'%f' % (1/10**8)
mostrará sólo ceros.
los detalles están en los documentos
O para Python 3 el formato antiguo equivalente o el formato más nuevo
Con versiones más nuevas de Python (2.6 en adelante), puedes usar ''.format()
para lograr lo que sugirió @SilentGhost:
'{0:f}'.format(x/y)
Y como PEP-498 tiene más de 8 años, Python 3.6 y posteriores admiten:
f'{x/y:f}'
Alguien comentó sobre imprimir listas, así que aquí hay un bono de 1 línea:
[f'{x:f}' for x in long_list]
Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.