Dar formato a un número flotante en cadena en Python
-
Formatee los números flotantes a un ancho fijo utilizando la especificación de formato y el método
format()
- Dar formato a números flotantes en una lista a un ancho fijo
-
Dar formato a un número flotante para fijar el ancho usando el operador
%
en Python -
Dar formato a un número flotante a un ancho fijo usando la función
round()
en Python
Este artículo presentará algunos métodos para formatear un número flotante a un ancho fijo en Python.
Formatee los números flotantes a un ancho fijo utilizando la especificación de formato y el método format()
Aquí, usaremos el proceso de formateo normal a través de la especificación de formato para corregir el ancho de los números flotantes.
Crearemos una variable num
y le asignaremos un número flotante. Luego, imprimiremos el número flotante en el formato que necesitemos. Vamos a utilizar la función format()
para obtener nuestro resultado.
Códigos de ejemplo:
# python 3.x
num = 0.02893574
print("{:.4f}".format(num))
Producción :
0.0289
Aquí, .4f
se denomina especificación de formato, lo que denota que la salida debe mostrar solo cuatro lugares después del decimal. Si usamos .5f
en su lugar, obtendríamos hasta cinco dígitos después del punto decimal. La cadena vacía antes de los dos puntos :
se coloca de modo que el argumento proporcionado a la función format()
ocupe ese lugar. En el programa anterior, el argumento que hemos proporcionado es num
. Entonces, cualquier valor que tengamos en num
se pasará a la cadena vacía antes de :
y se formateará en consecuencia.
En Python 3.6, también podemos usar f'{}'
para obtener el mismo Resultado:
#python 3.x
num = 0.02893574
print (f'{num:.4f}')
Producción :
0.0289
Dar formato a números flotantes en una lista a un ancho fijo
Usamos sintaxis similares para fijar el ancho de los números flotantes hasta un dígito específico después del decimal.
Primero, crearemos una lista con varios números flotantes. Luego, usaremos for loop para tomar cada elemento de la lista y formatearlo en consecuencia. Usaremos la variable numbers
para representar números dentro de la lista. Imprimiremos los números flotantes en la lista uno por uno con números fijos de dígitos después del decimal.
Código de ejemplo:
# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print("{:.3f}".format(numbers))
Producción :
18.292
52.452
999.121
En el código anterior, cada número dentro de la lista se envía uno por uno dentro del bucle for
. El primer elemento de la lista, es decir, list[0]
, se asigna a la variable numbers
, y se imprime su valor formateado, es decir, 18.293
. Ocurrió porque ejecutamos .3f
, que representa dígitos hasta tres lugares después del punto decimal. Del mismo modo, el segundo elemento list[1]
y el tercer list[2]
también se pasan al bucle como variables numbers
y se imprimen en consecuencia.
Este programa se ejecuta hasta que se ejecutan todos los elementos de la lista.
Usando la f'{}'
:
Código de ejemplo:
La lista a continuación contiene los mismos elementos que el programa anterior. Usaremos f'{}'
en lugar de la función format()
en este ejemplo.
# python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
print(f"{numbers:9.3f}")
Producción :
18.292
52.452
999.121
Podemos ver eso cuando obtuvimos la salida cuando usamos f'{}'
. También obtuvimos el resultado deseado de manera alineada. Por la misma razón, generalmente es mejor usar f'{}'
si queremos alinear los dígitos flotantes después del decimal.
Dar formato a un número flotante para fijar el ancho usando el operador %
en Python
También podemos establecer un ancho fijo para un número flotante con el uso del operador %v
. El código puede parecer similar a la función printf()
en la programación en C.
Asignaremos un número flotante a una variable num
e imprimiremos el valor de num
con dígitos decimales hasta un ancho fijo. Observe que al pasar el valor de num
a la declaración de impresión con el especificador de formato %.4f
, estamos usando %num
. Si falta %
antes de num
será un error de sintaxis.
Código de ejemplo:
# python 3.x
num = 0.02893574
print("%.4f" % num)
Producción :
0.0289
Aquí el uso de %num
nos ha permitido imprimir el valor deseado sin ninguna función o formato de cadena.
Dar formato a un número flotante a un ancho fijo usando la función round()
en Python
También podemos usar la función round()
para fijar el número de dígitos después del punto decimal. Esta función limita el número de dígitos después del punto decimal en el número de entrada. También redondea el dígito en el que el límite se establece en su valor integral superior si el dígito es mayor que el valor 5
.
Tomemos un número de coma flotante y lo asignamos a una variable num
. Cuando imprimimos, usaremos la función round()
para limitar el número de dígitos después del punto decimal.
Código de ejemplo:
# python 3.x
num = 2.37682
print(round(num, 3))
Producción :
2.377
La sintaxis de la función round es round(number, digits)
. Aquí el argumento number
es obligatorio mientras que el argumento digits
es opcional. number
también se puede poner como variable. Si no se pasa nada al argumento digits
, solo se toma como resultado la parte integral del number
.
En el programa anterior, pasamos el valor 2.37682
al primer argumento num
, y se redondeó a 3 lugares después del punto decimal porque pasamos el valor 3
al segundo argumento dentro de round()
método.