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.
- Transformar String em Número no JavaScript: Guia Completo
- Qual a diferença entre Front-end e Back-end?
- Resto da Divisão em JavaScript: Como Usar e Entender
- Entendendo o uso do “while” em Python: Um guia completo para iniciantes
- O que é Front-end e Back-end: Uma visão completa sobre os dois lados do desenvolvimento web