La conversión de un valor flotante a un int se realiza mediante la conversión de tipos , que es un método explícito para convertir un operando en un tipo específico. Sin embargo, cabe señalar que este tipo de conversión puede tender a ser con pérdidas (pérdida de datos). Convertir un valor int como 2 en punto flotante dará como resultado 2.0 , tales tipos de conversión son seguros ya que no habría pérdida de datos, pero convertir 3.4 en un valor int dará como resultado 3 , lo que conducirá a una conversión con pérdida.
Ejemplos:
Input: 3.3 Output: 3 Input: 5.99 Output: 5
Método 1: Conversión usando int() :
Para convertir un valor flotante a int, utilizamos la función integrada int() , esta función recorta los valores después del punto decimal y devuelve solo la parte entera/número entero.
Sintaxis: int(x)
Retorno: valor entero
Ejemplo 1: el número de tipo float se convierte en un resultado de tipo int .
Python3
# conversion from float to int num = 9.3 # printing data type of 'num' print('type:', type(num).__name__) # conversion to int num = int(num) # printing data type of 'num' print('converted value:', num, ', type:', type(num).__name__)
type: float converted value: 9 , type: int
Ejemplo 2: en la mayoría de los casos, la función int() redondea el resultado a un número entero menor o igual que la entrada, pero el comportamiento no es definitivo ni predecible. A continuación se muestra un ejemplo de este tipo.
Python3
# example of unpredictable # behaviour of int() num1 = 5.9 num2 = 5.99999999999999999999 num1 = int(num1) num2 = int(num2) print(num1, num2, sep = '\n')
5 6
Método 2: Conversión usando math.floor() y math.ceil() .
Un valor flotante se puede convertir a un valor int no mayor que la entrada usando la función math.floor(), mientras que también se puede convertir a un valor int que es el entero más pequeño mayor que la entrada usando math.ceil() función. El módulo matemático debe importarse para poder utilizar estos métodos.
Sintaxis: matemáticas.piso(x)
Parámetro:
x: Esta es una expresión numérica.
Devuelve: el entero más grande no mayor que x.
Sintaxis: matemáticas.ceil(x)
Parámetro:
x: Esta es una expresión numérica.
Devuelve: el entero más pequeño no menor que x.
Ejemplo: en el siguiente ejemplo, la conversión de float a int se logró mediante los métodos floor() y ceil(), el primero devuelve un int no mayor que la entrada y el último devuelve el entero más pequeño mayor que la entrada.
Python3
# conversion using floor and ceil . # importing math module import math num = 5.6 floor_value = math.floor(num) ceil_value = math.ceil(num) print("the result using floor() : ", floor_value , ', type : ',type(floor_value).__name__) print("the result using ceil() : ", ceil_value, ', type: ', type(ceil_value).__name__)
the result using floor() : 5 , type : int the result using ceil() : 6 , type: int
Método #3: Conversión usando round() .
Un valor flotante se puede convertir en un valor int que es un valor entero más cercano si no pasa el segundo parámetro. En caso de igual diferencia, va hacia un entero mayor.
Sintaxis: ronda(x)
Parámetro:
x: Esta es una expresión numérica.
Devuelve: entero múltiplo del más cercano.
Ejemplo: en el siguiente ejemplo, la conversión de float a int se logró utilizando los métodos round(), el primero devuelve un número int que es el más cercano al número.
Python3
# conversion using round. num = 5.6 # Before convetion value and type print( 'Type : ', type(num).__name__) print( "Original number is : ", num) # convertion to int value = round(num) print( 'Type : ',type(value).__name__) print("the result using round : ",value)
Type : float Original number is : 5.6 Type : int the result using round : 6
Método #4: Conversión usando math.trunc().
Un valor flotante se puede convertir en un valor int. En el caso de un número negativo, se comporta como una función de techo de la biblioteca matemática y en el caso de un número positivo, se comporta como una función de piso.
Sintaxis: matemáticas.trunc(x)
Parámetro:
x: Esta es una expresión numérica.
Devuelve: entero más grande en caso de número negativo; de lo contrario, en caso de número positivo, número más pequeño.
Ejemplo: en el siguiente ejemplo, la conversión de float a int se logró utilizando los métodos math.trunc(), el primero devuelve un número int más grande que, en caso de un número negativo, de lo contrario, en el caso de un número positivo, devuelve un número entero más pequeño.
Python3
# conversion using math.trunc(). import math num = 5.6 num2 = -2.6 # convertion of negative number to int value = math.trunc(num2) print( 'Type of value : ',type(value).__name__) print("the result using round : ",value) # convertion of positive number to int data = math.trunc(num) print( 'Type of data: ',type(data).__name__) print("the result using round : ",data)
Type of value : int the result using round : -2 Type of data: int the result using round : 5