En Python, los números de punto flotante (float
) se utilizan para representar números reales, tanto positivos como negativos.
Estos números pueden incluir una parte fraccionaria y se representan utilizando el estándar de punto flotante IEEE 754.
Los números de punto flotante en Python se pueden declarar utilizando notación decimal estándar.
numero_float = 3.14159
También se pueden expresar números de punto flotante en notación científica, usando la letra e
para indicar la potencia de diez:
numero_cientifico = 6.022e23 # 6.022 × 10^23
Operaciones con números de punto flotante
Python soporta las operaciones matemáticas básicas con números de punto flotante, como suma, resta, multiplicación y división:
# Suma
suma = 3.14 + 2.71
print(suma) # Salida: 5.85
# Resta
resta = 10.5 - 4.2
print(resta) # Salida: 6.3
# Multiplicación
multiplicacion = 2.5 * 4.0
print(multiplicacion) # Salida: 10.0
# División
division = 10.0 / 3.0
print(division) # Salida: 3.3333333333333335 (precisión limitada por la representación binaria)
Python también permite realizar otras operaciones avanzadas con números de punto flotante, como potenciación y cálculos trigonométricos usando el módulo math
:
import math
# Potenciación
potencia = math.pow(2.0, 3.0)
print(potencia) # Salida: 8.0
# Seno
seno_valor = math.sin(math.pi / 2)
print(seno_valor) # Salida: 1.0 (seno de 90 grados en radianes)
Precisión y redondeo
Los números de punto flotante en Python tienen una precisión limitada debido a la representación binaria (esto es limitación común a la mayoría de lenguajes de programación).
Hay que tenerlo en cuenta porque puede llevar a resultados inesperados en ciertos cálculos:
# Suma con precisión limitada
suma_precisa = 0.1 + 0.2
print(suma_precisa) # Salida: 0.30000000000000004 (precisión limitada)
Debido a la precisión limitada, las comparaciones directas entre números de punto flotante pueden no ser exactas:
a = 0.1 + 0.2
b = 0.3
print(a == b) # Salida: False (debido a la precisión limitada)
Infinito y Not-a-Number (NaN)
Python también maneja valores especiales como infinito (inf
) y Not-a-Number (NaN
) para representar resultados fuera de los límites numéricos normales:
# Infinito positivo
infinito_positivo = float('inf')
print(infinito_positivo) # Salida: inf
# Not-a-Number
nan_valor = float('nan')
print(nan_valor) # Salida: nan
Conversión entre tipos
Es posible convertir otros tipos de datos a números de punto flotante usando la función float()
:
texto = "3.14"
numero_float = float(texto)
print(numero_float) # Salida: 3.14
Los objetos float
en Python también tienen métodos útiles, como is_integer()
para verificar si el número es un entero:
numero = 3.0
print(numero.is_integer()) # Salida: True (el número 3.0 es un entero)