Float em Python: O Que é, Como Funciona e Boas Práticas

Tempo de leitura: 12 minutos
símbolo de PI

Quando você começa a aprender Python, logo descobre que trabalhar com números é uma das tarefas mais comuns na programação. Entre os tipos de dados em Python, o float se destaca como essencial para lidar com valores decimais e cálculos mais precisos.

Neste artigo, você vai entender o que é float, como ele funciona internamente, suas diferenças em relação aos inteiros e as melhores práticas para utilizá-lo em seus projetos. Prepare-se para dominar esse tipo de dado fundamental!

Confira este vídeo explicativo sobre números em Python do nosso canal, que complementa muito bem o conteúdo deste artigo:

YouTube player

O Que São Números de Ponto Flutuante

Float é a abreviação de floating point, que em português significa ponto flutuante. Esse tipo de dado representa números reais, ou seja, valores que podem ter casas decimais. Diferente dos números inteiros, que são completos e sem frações, os floats permitem representar quantidades mais específicas.

Imagine que você precisa calcular o preço de um produto com desconto. O valor final provavelmente terá centavos, certo? É aí que o float entra em ação. Ele é perfeito para situações que exigem precisão decimal, como cálculos financeiros, medições científicas ou operações matemáticas complexas.

Em Python, qualquer número escrito com ponto decimal é automaticamente tratado como float. Por exemplo, 3.14, 0.5 ou -2.75 são todos valores do tipo float. Até mesmo 3.0 é considerado float, mesmo que matematicamente seja igual ao inteiro 3.

Como Declarar e Usar Float no Python

Criar uma variável float em Python é extremamente simples. Você não precisa declarar explicitamente o tipo, pois Python faz isso automaticamente. Veja alguns exemplos práticos:

Python
preco = 19.99
temperatura = -5.3
pi = 3.14159
peso = 75.0

Note que usamos o ponto (.) como separador decimal, nunca a vírgula. Isso é um padrão internacional na programação e vale para praticamente todas as linguagens.

Você também pode criar floats usando notação científica, que é útil para números muito grandes ou muito pequenos:

Python
velocidade_luz = 3e8  # 3 x 10^8 = 300000000.0
massa_eletron = 9.11e-31  # 0.000000000000000000000000000000911

O “e” na notação científica significa “vezes dez elevado a”. É uma forma compacta de escrever números com muitos zeros.

Diferenças Entre Float e Int

Embora ambos sejam tipos numéricos, float e int têm características distintas que afetam como você deve usá-los. A diferença mais óbvia é que int representa números inteiros, enquanto float representa números decimais.

Quando você realiza divisão entre dois inteiros em Python 3, o resultado é sempre um float:

Python
resultado = 10 / 3
print(resultado)  # 3.3333333333333335
print(type(resultado))  # <class 'float'>

Se você quiser divisão inteira, use o operador //:

Python
resultado = 10 // 3
print(resultado)  # 3
print(type(resultado))  # <class 'int'>

Outra diferença importante está no uso de memória. Floats geralmente ocupam mais espaço que inteiros devido à complexidade de armazenar valores decimais. Além disso, operações com floats podem ser ligeiramente mais lentas.

Operações Matemáticas com Float

Python oferece diversos operadores para trabalhar com floats. As operações básicas funcionam exatamente como você espera:

Python
a = 10.5
b = 3.2

soma = a + b  # 13.7
subtracao = a - b  # 7.3
multiplicacao = a * b  # 33.6
divisao = a / b  # 3.28125
potencia = a ** 2  # 110.25

Você pode misturar inteiros e floats nas operações. Python automaticamente converte o resultado para float quando necessário:

Python
resultado = 10 + 5.5  # 15.5 (float)
resultado = 3 * 2.0  # 6.0 (float)

Para operações mais avançadas, você pode usar o módulo math, que oferece funções como raiz quadrada, seno, cosseno e logaritmos.

Conversão Entre Tipos Numéricos

Às vezes você precisa converter explicitamente entre float e int. Python fornece funções simples para isso:

Python
# Convertendo int para float
numero_inteiro = 42
numero_float = float(numero_inteiro)  # 42.0

# Convertendo float para int (perde as casas decimais)
numero_float = 3.99
numero_inteiro = int(numero_float)  # 3 (não arredonda, apenas trunca)

Note que ao converter float para int, Python simplesmente remove as casas decimais, não arredonda. Se você quer arredondamento, use a função round():

Python
valor = 3.7
arredondado = round(valor)  # 4

valor = 3.14159
arredondado = round(valor, 2)  # 3.14 (arredonda para 2 casas decimais)

Você também pode converter strings para float, desde que a string contenha um número válido:

Python
texto = "45.67"
numero = float(texto)  # 45.67

Precisão e Limitações do Float

Uma característica importante dos floats é que eles têm precisão limitada. Isso acontece porque os computadores armazenam números em formato binário, e alguns decimais não podem ser representados exatamente.

Veja este exemplo surpreendente:

Python
resultado = 0.1 + 0.2
print(resultado)  # 0.30000000000000004

Esse comportamento não é um bug do Python, mas sim uma limitação de como números de ponto flutuante funcionam em qualquer linguagem. Para a maioria das aplicações, essa diferença minúscula não importa. Mas em cálculos financeiros ou científicos de alta precisão, você precisa estar ciente disso.

Se você precisa de precisão decimal absoluta, use o módulo decimal:

Python
from decimal import Decimal

valor1 = Decimal('0.1')
valor2 = Decimal('0.2')
resultado = valor1 + valor2
print(resultado)  # 0.3 (exato!)

Formatação de Números Float

Ao exibir floats, muitas vezes você quer controlar quantas casas decimais aparecem. Python oferece várias formas de formatar números:

Python
preco = 19.99876

# Usando f-strings (recomendado no Python 3.6+)
print(f"Preço: R$ {preco:.2f}")  # Preço: R$ 19.99

# Usando format()
print("Preço: R$ {:.2f}".format(preco))  # Preço: R$ 19.99

# Usando operador %
print("Preço: R$ %.2f" % preco)  # Preço: R$ 19.99

O .2f indica que você quer 2 casas decimais. Você pode ajustar esse número conforme necessário.

Para adicionar separadores de milhares, use:

Python
valor_grande = 1234567.89
print(f"{valor_grande:,.2f}")  # 1,234,567.89

Comparações com Float

Devido à imprecisão dos floats, comparar valores de igualdade pode gerar resultados inesperados. Veja:

Python
a = 0.1 + 0.2
b = 0.3

print(a == b)  # False

A melhor prática é usar uma margem de tolerância ao comparar floats:

Python
tolerancia = 1e-9
diferenca = abs(a - b)

if diferenca < tolerancia:
    print("Os números são praticamente iguais")
else:
    print("Os números são diferentes")

Python 3.5+ oferece a função math.isclose() que facilita essas comparações:

Python
import math

a = 0.1 + 0.2
b = 0.3

print(math.isclose(a, b))  # True

Valores Especiais Float

Python suporta alguns valores especiais para floats que representam situações matemáticas específicas:

Python
# Infinito positivo
infinito_positivo = float('inf')

# Infinito negativo
infinito_negativo = float('-inf')

# Not a Number (não é um número)
nao_numero = float('nan')

Esses valores aparecem em operações matemáticas especiais:

Python
resultado = 1.0 / 0.0  # Gera erro em Python
resultado = float('inf') * 2  # inf
resultado = float('inf') - float('inf')  # nan

Você pode verificar esses valores usando funções do módulo math:

Python
import math

print(math.isinf(float('inf')))  # True
print(math.isnan(float('nan')))  # True
print(math.isfinite(42.0))  # True

Aplicações Práticas do Float

Os floats são fundamentais em diversas áreas da programação. Em análise de dados, você usa floats constantemente para trabalhar com médias, porcentagens e estatísticas.

Na programação financeira, floats ajudam a calcular juros, descontos e taxas. Embora o módulo decimal seja mais preciso para dinheiro, floats funcionam bem para a maioria dos cálculos:

Python
preco_original = 100.00
desconto_percentual = 15.5
valor_desconto = preco_original * (desconto_percentual / 100)
preco_final = preco_original - valor_desconto

print(f"Preço final: R$ {preco_final:.2f}")  # Preço final: R$ 84.50

Em jogos e gráficos, floats representam posições, velocidades e acelerações de objetos. Na ciência de dados, com bibliotecas como Pandas e NumPy, floats são o tipo padrão para dados numéricos.

Erros Comuns ao Trabalhar com Float

Conhecer os erros comuns ajuda você a evitá-los. Um erro frequente é assumir que floats são sempre precisos:

Python
# Evite isso:
if (0.1 + 0.2) == 0.3:
    print("Iguais")  # Não vai executar

# Prefira isso:
import math
if math.isclose(0.1 + 0.2, 0.3):
    print("Praticamente iguais")  # Executa

Outro erro é não arredondar valores ao exibir preços:

Python
# Evite:
preco = 19.999
print(f"Preço: R$ {preco}")  # R$ 19.999

# Prefira:
print(f"Preço: R$ {preco:.2f}")  # R$ 20.00

Também é comum esquecer que divisão sempre retorna float no Python 3:

Python
quantidade = 10 / 2  # 5.0, não 5
# Se você quer int, use //
quantidade = 10 // 2  # 5

Boas Práticas ao Usar Float

Para usar floats de forma eficiente, siga estas recomendações. Primeiro, sempre que possível, use f-strings para formatação, pois são mais legíveis e rápidas.

Quando trabalhar com dinheiro ou valores que exigem precisão absoluta, considere usar o módulo decimal. Para comparações, prefira math.isclose() ao invés do operador de igualdade direto.

Documente seus cálculos, especialmente quando envolvem conversões ou arredondamentos. Isso ajuda outros desenvolvedores (e você mesmo no futuro) a entender o código:

Python
def calcular_desconto(preco, percentual):
    """
    Calcula o preço com desconto.
    
    Args:
        preco (float): Preço original do produto
        percentual (float): Percentual de desconto (0-100)
    
    Returns:
        float: Preço final com desconto aplicado
    """
    desconto = preco * (percentual / 100)
    preco_final = preco - desconto
    return round(preco_final, 2)  # Arredonda para 2 casas decimais

Use constantes para valores importantes e dê nomes descritivos:

Python
PI = 3.14159265359
TAXA_JUROS_MENSAL = 0.015
DESCONTO_MAXIMO = 0.30

# Melhor que usar números mágicos no código
area = PI * raio ** 2

Performance e Otimização

Embora Python seja eficiente com floats, algumas práticas podem melhorar a performance do seu código. Se você está fazendo muitos cálculos numéricos, use NumPy, que é otimizado para operações com arrays.

Evite conversões desnecessárias entre tipos. Cada conversão consome recursos:

Python
# Menos eficiente
for i in range(1000):
    resultado = float(i) * 2.5

# Mais eficiente
multiplicador = 2.5
for i in range(1000):
    resultado = i * multiplicador  # Python converte automaticamente

Para cálculos intensivos, considere usar operações vetorizadas com NumPy ao invés de loops tradicionais.

Perguntas Frequentes (FAQ)

1. Qual a diferença entre float e int em Python?

Float representa números decimais, enquanto int representa números inteiros. Floats ocupam mais memória e podem ter imprecisões em cálculos.

2. Por que 0.1 + 0.2 não é exatamente 0.3 em Python?

Devido à forma como computadores armazenam números em binário, alguns decimais não podem ser representados com precisão absoluta. Use math.isclose() para comparações.

3. Como converter float para int sem perder precisão?

Não é possível converter sem perder as casas decimais. Use round() antes de converter se quiser arredondamento, ou int() se quiser apenas truncar.

4. Devo usar float ou Decimal para cálculos com dinheiro?

Para cálculos financeiros críticos, use o módulo Decimal. Para a maioria das aplicações, float com arredondamento adequado funciona bem.

5. Como arredondar um float para 2 casas decimais?

Use round(numero, 2) para arredondar ou f”{numero:.2f}” para formatar na exibição sem alterar o valor original.

6. Floats podem ser usados como chaves de dicionário?

Sim, mas não é recomendado devido à imprecisão. Prefira usar inteiros ou strings como chaves de dicionários.

7. Qual o maior número float que Python suporta?

O maior float é aproximadamente 1.8 x 10^308. Valores maiores retornam float(‘inf’).

8. Como verificar se uma variável é do tipo float?

Use type(variavel) == float ou isinstance(variavel, float) para verificação de tipo.

9. É possível fazer operações matemáticas misturando float e int?

Sim, Python converte automaticamente o resultado para float quando você mistura os tipos em operações.

10. Como formatar floats com separador de milhares?

Use f”{numero:,.2f}” para adicionar vírgulas como separadores de milhares em números formatados.

11. Float tem limite de casas decimais?

Floats têm precisão limitada de aproximadamente 15-17 dígitos significativos. Para mais precisão, use o módulo Decimal.

12. Como resolver problemas de precisão em loops com floats?

Evite acumular erros usando incrementos inteiros e convertendo depois, ou use Decimal para operações que exigem precisão absoluta.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Conteúdo do artigo

    Artigos relacionados

    Ilustração minimalista do logotipo da linguagem de programação Python ao lado do texto REGEX em fundo neutro
    Fundamentos
    Foto do Leandro Hirt

    Regex Python: Tudo Sobre Expressões Regulares

    Se você já tentou encontrar padrões específicos em textos, validar formatos de email ou extrair informações de documentos, provavelmente já

    Ler mais

    Tempo de leitura: 12 minutos
    05/01/2026
    Logo do Python, texto TXT e ícone de bloco de notas representando arquivos de texto
    Fundamentos
    Foto do Leandro Hirt

    Como Ler Arquivos TXT no Python

    Trabalhar com arquivos de texto é uma das tarefas mais comuns na programação. Aprender como ler arquivo TXT no Python

    Ler mais

    Tempo de leitura: 14 minutos
    24/12/2025
    Comparação visual entre Python 2 e Python 3 com ícones minimalistas
    Fundamentos
    Foto do Leandro Hirt

    Python 2 vs Python 3: Principais Diferenças

    Se você está começando a estudar Python ou já trabalha com a linguagem, provavelmente já se deparou com uma dúvida

    Ler mais

    Tempo de leitura: 20 minutos
    22/12/2025
    Pessoa pensando com um monitor desfocado ao fundo
    Fundamentos
    Foto do Leandro Hirt

    Tipos de Dados em Python: int, float, str, list e dict

    Aprenda tudo sobre os principais tipos de dados em Python: int, float, str, list e dict. Guia completo com exemplos

    Ler mais

    Tempo de leitura: 14 minutos
    21/12/2025
    Pessoa usando tablet com caneta digital para planejar tarefas em checklist, representando organização, planejamento e produtividade digital.
    Fundamentos
    Foto do Leandro Hirt

    Como Ordenar Listas no Python (Sort vs Sorted)

    Você já ficou confuso sobre quando usar sort() ou sorted() para organizar suas listas em Python? Não está sozinho. Esses

    Ler mais

    Tempo de leitura: 12 minutos
    20/12/2025
    Logo do Python com uma faca, simbolizando fatiamento
    Fundamentos
    Foto do Leandro Hirt

    Fatiamento em Python: Tudo Sobre Slicing

    O fatiamento (ou slicing) é uma técnica fundamental em Python que permite extrair partes específicas de sequências como listas, strings

    Ler mais

    Tempo de leitura: 11 minutos
    13/12/2025