Introducción
En este artículo, utilizaremos la función float()
de Python para convertir cadenas en números flotantes. También utilizaremos la función str()
de Python para convertir números flotantes en cadenas.
Es importante convertir correctamente los tipos de datos antes de utilizarlos para cálculos y concatenaciones con el fin de evitar errores en tiempo de ejecución.
Prerrequisitos
Para completar este tutorial, necesitarás:
- Familiaridad con la instalación de Python 3. Y familiaridad con la programación en Python. Serie de cómo programar en Python 3 o el uso de VS Code para Python.
Este tutorial fue probado con Python 3.9.6.
Utilizando la función float()
Podemos convertir una cadena a flotante en Python usando la función float()
. Esta es una función integrada utilizada para convertir un objeto a un número de punto flotante. Internamente, la función float()
llama a la función __float__()
del objeto especificado.
Ejemplo
Veamos un ejemplo de cómo convertir una cadena a flotante en Python:
input_1 = '10.5674'
input_1 = float(input_1)
print(type(input_1))
print('Float Value =', input_1)
Salida:
<class 'float'>
Float Value = 10.5674
El valor de cadena '10.5674'
se ha convertido en un valor flotante de 10.5674
.
¿Por qué necesitamos convertir una cadena a flotante?
Si estamos recibiendo un valor flotante desde la entrada del usuario a través del terminal o leyéndolo desde un archivo, entonces son objetos de cadena. Debemos convertirlos explícitamente a flotante para poder realizar operaciones necesarias en ellos, como adición, multiplicación, etc.
input_1 = input('Please enter first floating point value:\n')
input_1 = float(input_1)
input_2 = input('Please enter second floating point value:\n')
input_2 = float(input_2)
print(f'Sum of {input_1} and {input_2} is {input_1+input_2}')
Nota: Si no está familiarizado con la formateo de cadenas utilizando el prefijo f, por favor lea f-strings en Python.
¡Ejecutemos este código y proporcionemos valores flotantes para input_1
y input_2
:
Please enter first floating point value:
10.234
Please enter second floating point value:
2.456
Sum of 10.234 and 2.456 is 12.69
El resultado de la suma de 10.234
y 2.456
es 12.69
.
Idealmente, deberíamos usar un bloque try-except
para capturar excepciones en caso de entrada no válida por parte del usuario.
Usando la función str()
También podemos convertir un número decimal a una cadena utilizando la función str()
. Esto puede ser necesario en situaciones donde queremos concatenar valores decimales.
Ejemplo
Veamos un ejemplo:
input_1 = 10.23
input_2 = 20.34
input_3 = 30.45
# utilizando f-strings desde Python 3.6+, cambiar a format() para versiones más antiguas
print(f'Concatenation of {input_1} and {input_2} is {str(input_1) + str(input_2)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{str(input_1)},{str(input_2)},{str(input_3)}')
print(f'CSV from {input_1}, {input_2} and {input_3}:\n{", ".join([str(input_1),str(input_2),str(input_3)])}')
Ejecutemos este código:
Concatenation of 10.23 and 20.34 is 10.2320.34
CSV from 10.23, 20.34 and 30.45:
10.23,20.34,30.45
CSV from 10.23, 20.34 and 30.45:
10.23, 20.34, 30.45
La concatenación de 10.23
y 20.34
produce la cadena '10.2320.34'
. Este código también genera dos versiones de valores separados por comas (CSV).
Si no convertimos el decimal a cadena en el programa anterior, la función join()
lanzará una excepción. Además, no podremos usar el operador +
para la concatenación, ya que sumará los números decimales.
Conclusión
Puedes revisar el script completo de Python y más ejemplos de Python en nuestro repositorio de GitHub.
Referencias:
Source:
https://www.digitalocean.com/community/tutorials/python-convert-string-to-float