En este post voy a explicar cómo separar un número y obtener su parte entera y su parte fraccional o decimal usando Python.
Por ejemplo, a partir del número 80.1265 obtener el entero (80) y la parte decimal (.1265) evitando usar cadenas, simplemente funciones matemáticas.
Función modf
Al igual que cuando hicimos este ejercicio en C, vamos a usar la función modf que viene dentro de math. Hay que importar a math con:
import math
Después podemos llamar a math.modf, función que va a devolver una tupla o dos variables. La primer variable será la parte decimal y la segunda la parte entera. Por lo tanto la sintaxis es:
parte_decimal, parte_entera = math.modf(numero)
Abajo veremos un ejemplo.
Ejemplo de uso de modf para separar entero y decimal
Le pasamos un número a modf y devolverá dos variables.
# -*- coding: utf-8 -*-
import math
numero = 80.1265
print("El número es: ", numero)
parte_decimal, parte_entera = math.modf(numero)
print("Su parte entera es {} y su parte decimal es {}".format(
parte_entera, parte_decimal))
el problema con modf, es que distorsiona algunas veces el valor que introduces
import math
numero=1010.101
decimal, entero = math.modf(numero)
print(decimal)# 0.0.10099999999999909
print(entero)# 1010.0
Creo que ese es un problema que tiene que ver con la representación de números flotantes en una computadora, sin importar el lenguaje
Pingback: Java: separar parte entera y decimal de un número - Parzibyte's blog