Transformar Float em Int em Python: Guia Completo

transformar float em int python

Se você é um programador Python, provavelmente já se deparou com a necessidade de converter um número em ponto flutuante (float) para um número inteiro (int) em algum momento. Embora o Python seja uma linguagem extremamente flexível, realizar essa conversão pode ser um pouco confuso para os iniciantes. Mas não se preocupe! Neste guia completo, vamos explorar várias maneiras de transformar float em int em Python, explicando cada método em detalhes. Vamos começar!

1. A Função int()

Uma das maneiras mais simples de transformar um float em int em Python é usando a função embutida int(). Essa função permite que você converta números em ponto flutuante para inteiros, eliminando a parte decimal do número original. Por exemplo:pythonCopy codenumero_float = 10.75
numero_inteiro = int(numero_float)
print(numero_inteiro) # Saída: 10
Essa abordagem é útil quando você precisa apenas da parte inteira do número e não se importa com a parte decimal.

2. Arredondamento com a Função round()

Em algumas situações, você pode querer arredondar um número em ponto flutuante para o inteiro mais próximo. Para isso, a função round() pode ser utilizada. Essa função arredonda o valor para cima ou para baixo, dependendo do valor da parte decimal:pythonCopy codenumero_float = 10.75
numero_arredondado = round(numero_float)
print(numero_arredondado) # Saída: 11
Se o valor da parte decimal for igual ou maior que 0.5, o número será arredondado para cima. Caso contrário, será arredondado para baixo.

3. Conversão usando operador de atribuição

Outra maneira de transformar um float em int é utilizando o operador de atribuição. Esse método é uma abordagem rápida e simples:pythonCopy codenumero_float = 15.25
numero_inteiro = int(numero_float)
print(numero_inteiro) # Saída: 15

4. Utilizando a Função math.floor()

A biblioteca math do Python oferece a função floor(), que sempre arredonda o valor para baixo, retornando o maior número inteiro que é menor ou igual ao número original:pythonCopy codeimport math

numero_float = 8.9
numero_inteiro = math.floor(numero_float)
print(numero_inteiro) # Saída: 8

5. Utilizando a Função math.ceil()

Em contrapartida, a função ceil() da biblioteca math sempre arredonda o valor para cima, retornando o menor número inteiro que é maior ou igual ao número original:pythonCopy codeimport math

numero_float = 7.2
numero_inteiro = math.ceil(numero_float)
print(numero_inteiro) # Saída: 8

6. Truncando com a Função math.trunc()

Para remover a parte decimal de um número em ponto flutuante sem arredondar, a função trunc() da biblioteca math pode ser utilizada. Essa função simplesmente corta a parte decimal do número:pythonCopy codeimport math

numero_float = 12.99
numero_inteiro = math.trunc(numero_float)
print(numero_inteiro) # Saída: 12

7. Utilizando a função floor() com divisão

Outra técnica interessante para converter float em int é utilizar a função floor() da biblioteca math em conjunto com a divisão:pythonCopy codeimport math

numero_float = 30.0
numero_dividido = numero_float / 1.0
numero_inteiro = math.floor(numero_dividido)
print(numero_inteiro) # Saída: 30

8. Verificando se o número é inteiro

Se você estiver trabalhando com um número em ponto flutuante e quiser verificar se ele é inteiro, pode utilizar a função is_integer():pythonCopy codenumero_float = 42.0
if numero_float.is_integer():
print(“É um número inteiro!”)
else:
print(“Não é um número inteiro.”)

9. Convertendo com f-string

Outra abordagem curiosa é utilizar uma f-string para converter o float em int:pythonCopy codenumero_float = 9.75
numero_inteiro = int(f”{numero_float:.0f}”)
print(numero_inteiro) # Saída: 10

10. Transformando em Int usando Listas

Você pode usar uma lista para transformar um número em ponto flutuante em um número inteiro. Basta adicionar o número à lista e, em seguida, recuperá-lo como o primeiro elemento:pythonCopy codenumero_float = 20.5
lista = [numero_float]
numero_inteiro = lista[0]
print(numero_inteiro) # Saída: 20

11. Cuidado com a perda de dados

Ao transformar um float em int, é importante lembrar que a parte decimal será removida. Isso pode levar à perda de informações importantes, especialmente se você estiver lidando com valores fracionados.

12. Tratando exceções com try-except

Se você estiver obtendo números em ponto flutuante de uma fonte externa, é aconselhável usar um bloco try-except para lidar com entradas inválidas:pythonCopy codenumero_em_string = “23.5”
try:
numero_inteiro = int(numero_em_string)
print(numero_inteiro)
except ValueError:
print(“Valor inválido. Não é possível converter para int.”)

13. Convertendo usando a função astype()

Caso você esteja trabalhando com bibliotecas como o NumPy, que permite o uso de arrays, você pode utilizar a função astype() para converter o tipo dos elementos do array:pythonCopy codeimport numpy as np

array_float = np.array([3.14, 2.71, 1.99])
array_inteiro = array_float.astype(int)
print(array_inteiro) # Saída: array([3, 2, 1])

14. Quando usar cada método?

Cada método de conversão apresentado neste guia possui suas particularidades. Use a função int() quando desejar simplesmente remover a parte decimal do número. Utilize round() quando precisar arredondar o valor para o inteiro mais próximo, math.floor() para arredondar para baixo, e math.ceil() para arredondar para cima. Se você quiser apenas cortar a parte decimal sem arredondar, math.trunc() é a opção. Já a função is_integer() é útil para verificar se o número é inteiro ou não.

15. Conclusão

Transformar float em int em Python é uma tarefa essencial para muitos programadores. Neste artigo, exploramos diversas maneiras de realizar essa conversão de forma eficiente e explicamos cada método detalhadamente. Agora você está preparado para escolher a abordagem mais adequada ao seu cenário e continuar desenvolvendo incríveis projetos em Python.

Perguntas Frequentes

1. Posso usar a função int() para converter uma string numérica para um número inteiro?

Sim, a função int() também pode ser usada para converter uma string numérica em um número inteiro, desde que a string contenha apenas caracteres numéricos. Caso contrário, uma exceção ValueError será lançada.

2. Qual é a diferença entre math.floor() e math.trunc()?

A diferença principal entre essas duas funções é a forma como elas lidam com números negativos. math.floor() sempre arredonda para baixo, ou seja, em direção aos números negativos. Já math.trunc() simplesmente remove a parte decimal, mantendo o sinal do número original.

3. Posso converter um número em ponto flutuante com várias casas decimais para int?

Sim, é possível converter um número com várias casas decimais em int, mas lembre-se de que a conversão simplesmente eliminará as casas decimais, resultando em perda de precisão.

4. Como posso verificar se um número em ponto flutuante possui parte decimal?

Você pode verificar se um número em ponto flutuante possui parte decimal comparando-o com o resultado da função math.trunc(). Se os dois valores forem diferentes, isso significa que o número tem parte decimal.

5. Existe uma função para arredondar o número para o inteiro mais próximo sem usar round()?

Sim, você pode utilizar a função math.floor() ou math.ceil() em conjunto com a divisão, como demonstrado na seção “Utilizando a função floor() com divisão” deste artigo, para arredondar o número para o inteiro mais próximo.

Prof. Eduardo H Gomes
Prof. Eduardo H Gomes

Mestre em Engenharia da Informação, Especialista em Engenharia da Computação, Cientista da Computação, Professor de Inteligência Artificial, 18 anos de docência no Ensino Superior. Apaixonado por Surf, Paraglider, Mergulho livre, Tecnologia, SEO, Banco de Dados e Desenvolvimento Web.