3.2.3 Flotantes

3.2.3 Flotantes

Los números en punto flotante tienen parte decimal. Veamos algunos ejemplos de flotantes en Python.

3.2.3 Flotantes
Conversión de tipos

El hecho de que existan distintos tipos de datos en Python (y en el resto de lenguajes de programación) es una ventaja a la hora de representar la información del mundo real de la mejor manera posible. Pero también se hace necesario buscar mecanismos para convertir unos tipos de datos en otros.

Conversión implícita

Cuando mezclamos enteros, booleanos y flotantes, Python realiza automáticamente una conversión implícita (o promoción) de los valores al tipo de «mayor rango». Veamos algunos ejemplos de esto:

3.2.3 Flotantes

Podemos resumir la conversión implícita en la siguiente tabla:

3.2.3 Flotantes

Se puede ver claramente que la conversión numérica de los valores booleanos es:

3.2.3 Flotantes

Conversión explícita

Aunque más adelante veremos el concepto de función, desde ahora podemos decir que existen una serie de funciones para realizar conversiones explícitas de un tipo a otro:

bool() Convierte el tipo a booleano.

int() Convierte el tipo a entero.

float() Convierte el tipo a flotante.

Veamos algunos ejemplos de estas funciones:

3.2.3 Flotantes

En el caso de que usemos la función int() sobre un valor flotante, nos retorna su parte baja:

3.2.3 Flotantes

Para obtener el tipo de una variable podemos hacer uso de la función type():

3.2.3 Flotantes

Igualmente existe la posibilidad de comprobar el tipo que tiene una variable mediante la función isinstance():

3.2.3 Flotantes

Para obtener el tipo de una variable podemos hacer uso de la función type():

Igualmente existe la posibilidad de comprobar el tipo que tiene una variable mediante la función isinstance():

3.2.3 Flotantes

Ejercicio

Existe una aproximación al seno de un ángulo 𝑥 expresado en grados:

3.2.3 Flotantes
Calcule dicha aproximación utilizando operaciones en Python. Descomponga la expresión en subcálculos almacenados en variables. Tenga en cuenta aquellas expresiones comunes para no repetir cálculos y seguir el principio DRY.

¿Qué tal funciona la aproximación? Compare sus resultados con estos:

  • 𝑠𝑖𝑛(90) = 1.0
  • 𝑠𝑖𝑛(45) = 0.7071067811865475
  • 𝑠𝑖𝑛(50) = 0.766044443118978

Errores de aproximación

Nivel intermedio

Supongamos el siguiente cálculo:

3.2.3 Flotantes

Debería dar 1.0, pero no es así puesto que la representación interna de los valores en coma flotante sigue el estándar IEEE 754 y estamos trabajando con aritmética finita.

Aunque existen distintas formas de solventar esta limitación, de momento veremos una de las más sencillas utilizando la función «built-in» round() que nos permite redondear un número flotante a un número determinado de decimales:

3.2.3 Flotantes

Para el caso del error de aproximación que nos ocupa:

3.2.3 Flotantes

Límite de un flotante

A diferencia de los enteros, los números flotantes sí que tienen un límite en Python. Para descubrirlo podemos ejecutar el siguiente código:

3.2.4 Bases

Nivel intermedio

Los valores numéricos con los que estamos acostumbrados a trabajar están en base 10 (o decimal). Esto indica que disponemos de 10 «símbolos» para representar las cantidades. En este caso del 0 al 9.

Pero también es posible representar números en otras bases. Python nos ofrece una serie de prefijos y funciones para este cometido.

Base binaria

Cuenta con 2 símbolos para representar los valores: 0 y 1.

Prefijo: 0b

3.2.3 Flotantes

Base octal

Cuenta con 8 símbolos para representar los valores: 0, 1, 2, 3, 4, 5, 6 y 7.

Prefijo: 0o

3.2.3 Flotantes

Función: oct()

3.2.3 Flotantes

Base hexadecimal

Cuenta con 16 símbolos para representar los valores: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F.

Prefijo: 0x
3.2.3 Flotantes

Función: hex()

3.2.3 Flotantes

Nota: Las letras para la representación hexadecimal no atienden a mayúsculas y minúsculas.

EJERCICIOS DE REPASO

  1. Escriba un programa en Python que acepte el radio de un círculo y compute su área (s
  • Entrada: 5
  • Salida: 78.5
  1. Escriba un programa en Python que acepte el radio de una esfera y obtenga su volume
  • Entrada: 5
  • Salida: 523.3333333333334
  1. Escriba un programa en Python que acepte la base y la altura de un triángulo y comp
  • Entrada: base=4; height=5
  • Salida: 10.0
  1. Escriba un programa en Python que compute el futuro valor de una cantidad de diner
  • Entrada: capital=10000; interest_rate=3.5; years=7
  • Salida: 12722.792627665729
  1. Escriba un programa en Python que calcule la distancia euclídea entre dos puntos (x1,
  • Entrada: (x1 = 3,y1 = 5); (x2 = —7,y2 = -4)
  • Salida: 13.45362404707371

AMPLIAR CONOCIMIENTOS

  • The Python Square Root Function
  • How to Round Numbers in Python
  • Operators and Expressions in Python

Publicaciones Similares