← Volver

Cómo truncar los decimales de un número de coma flotante

Usando la siguiente función:

def truncate(number: float, max_decimals: int) -> float:
int_part, dec_part = str(number).split(".")
return float(".".join((int_part, dec_part[:max_decimals])))

n = 7.123456
print(truncate(n, 2)) # 7.12
print(truncate(n, 1)) # 7.1
print(truncate(n, 4)) # 7.1234

El primer argumento es el número cuyos decimales se quiere truncar, mientras que el segundo argumento indica la cantidad de decimales que se quiere preservar. Nótese que la función trunca los decimales, pero no los redondea. Para redondear un número de coma flotante, véase Cómo redondear un número decimal. Para quitar todos los decimales, simplemente conviértase el número a un entero vía int():

n = 7.123456
print(int(n)) # 7

Para una explicación sobre los métodos split() y join() utilizados en la función, véase 30 métodos de las cadenas. Para la sintaxis int_part, dec_part y la expresión dec_part[:max_decimals] véanse las funcionalidades de unpacking y slicing, respectivamente.

¿Alguna duda sobre este código? ¡Preguntanos en el foro!