Limitar float a duas casas decimais em Python
Neste artigo você vai aprender a limitar float a duas casas decimais em Python, de uma maneira extremamente simples e fácil
Pra limitar um float a duas casas decimais em Python tu tem três caminhos principais: a f-string f"{n:.2f}" (a partir do Python 3.6), o método "{:.2f}".format(n) e a função round(n, 2). A f-string e o format devolvem uma string já formatada, com o número arredondado e completado com zeros à direita. O round() devolve um número, útil quando o valor vai seguir em outros cálculos. Pra cálculo financeiro preciso, use o módulo decimal com Decimal("valor").quantize(Decimal("0.01")), que foge das imprecisões do ponto flutuante.

Fala programador(a), beleza? Bora aprender mais sobre Python e números com ponto flutuantes, os floats!
Algumas operações matemáticas podem gerar dizimas periódicas ou até mesmo números quebrados com diversas casas decimais
Para apresentação a um cliente final não é interessante exibir um número desta maneira
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
Então como podemos resumir ele?
Utilizando a função format, e escolhendo exatamente como o número deve se portar
Veja um exemplo prático:
n = 14.932939294234
n_formatado = "{:.2f}".format(n)
print(n_formatado) # 14.93
Veja que resumimos o número em 14.93, como issso foi possível?
Inserimos uma string, que representa um padrão, e é assim que o número será exibido
- .2f = duas casas decimais de um float;
Utilizamos a função format, que recebe o nosso número de float para ser formato
E assim o resultado final é exibido por meio de print
Desta forma podemos formatar qualquer número em qualquer quantidade de casas decimais, basta alterar a string base
Conclusão
Neste artigo você aprendeu a como limitar float a duas casas decimais, utilizando a linguagem Python
Nós implementamos um padrão de string, que é como o número será formatado e aplicamos a função format no decimal
Desta maneira o número agora é exibido, com a quantidade de casas que precisamos para resolver nosso problema
Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube
Limitar float com f-string (a partir do Python 3.6):
Se tu tá numa versão mais nova do Python, dá pra fazer isso ainda mais limpo, com f-string

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →A f-string chegou no Python 3.6 e deixa tu formatar o número direto dentro da string, sem chamar o .format() na mão
n = 14.932939294234
print(f"{n:.2f}") # 14.93
A lógica é a mesma do format: o :.2f diz "duas casas decimais de um float"
Só que agora tá tudo numa linha só
muito mais direto né?
O que significa o .2f no Python?
Bora destrinchar esse .2f, que é o coração da formatação
O ponto e o 2 (o .2) dizem quantas casas tu quer depois da vírgula
O f trata o valor como float
Juntando, o .2f arredonda o número pra duas casas e, se faltar casa, completa com zero
Ex: o 5 vira 5.00, e o 14.9329 vira 14.93
E a função round()?
O format e a f-string devolvem uma string já formatada, prontinha pra exibir
Mas e se tu precisa do NÚMERO pra continuar fazendo conta? Aí entra o round()
O round() é uma função embutida do Python: tu passa o número e quantas casas quer
n = 14.932939294234
print(round(n, 2)) # 14.93
A diferença é importante: o round() devolve um número (float), não uma string
Então se tu só vai EXIBIR pro cliente, format ou f-string resolve
Se tu vai continuar calculando, o round() mantém o valor como número
Cuidado com o round() em cálculo de dinheiro:
Se liga nisso, porque já pegou muita gente de surpresa
Olha esse caso:
print(round(2.675, 2)) # 2.67
Ué, não era pra dar 2.68?
Não é bug do Python: é como o float guarda os números em binário
Várias frações decimais não têm representação exata em float, então o valor que fica guardado é levemente diferente de 2.675
Outro detalhe: o round() usa por padrão o arredondamento "round half to even" (o famoso arredondamento bancário), onde o meio vai pro par mais próximo

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.Pra cálculo financeiro, onde tu não pode errar um centavo, o caminho é o módulo decimal
from decimal import Decimal
valor = Decimal("2.675").quantize(Decimal("0.01"))
print(valor) # 2.68
Com o Decimal tu controla a precisão de verdade e foge das surpresas do ponto flutuante
Na prática, esse tipo de número quebrado quase nunca nasce no teu código: ele vem de fora, de uma API ou de um input que tu não controla, muitas vezes como texto que tu converte pra float antes de formatar. É aí que o arredondamento vira dor de cabeça. Vale abrir o terminal e rodar round(2.675, 2) com os teus próprios olhos: quando aparece 2.67 no lugar de 2.68 pela primeira vez, a ficha cai de que float não é confiável pra dinheiro. Por isso, em qualquer coisa que envolva centavo, o caminho é partir pro Decimal e parar de brigar com o ponto flutuante.
Perguntas frequentes
Como limitar um float a duas casas decimais em Python?
Use f"{n:.2f}" (f-string, a partir do Python 3.6), "{:.2f}".format(n) ou round(n, 2). As duas primeiras geram uma string formatada com arredondamento e zeros à direita; o round() devolve um número.
O que significa o .2f no Python?
No .2f, o .2 indica duas casas decimais depois da vírgula e o f trata o valor como float. O número é arredondado para duas casas e, se tiver menos casas, é completado com zeros (o 5 vira 5.00).
Qual a diferença entre .2f e round() em Python?
O .2f (via f-string ou format) devolve uma string já formatada, com os zeros à direita garantidos. O round() devolve um número (float), então nem sempre mostra as duas casas na exibição. Use .2f pra exibir e round() quando o valor vai continuar em cálculos.
Por que round(2.675, 2) retorna 2.67 em vez de 2.68?
Não é bug do Python. Muitas frações decimais não têm representação exata em float, então o valor guardado é levemente diferente de 2.675. Além disso, o round() usa por padrão o arredondamento bancário (round half to even). Pra precisão em dinheiro, use o módulo decimal com .quantize().
Como arredondar valores monetários com precisão em Python?
Use o módulo decimal: from decimal import Decimal e depois Decimal("2.675").quantize(Decimal("0.01")), que devolve 2.68. Assim você controla a precisão e evita as surpresas do ponto flutuante.
Leia também
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares

Como limitar números decimais em Python?
Neste artigo vamos aprender como limitar números decimais em Python, de uma forma simples com recursos da própria linguagem. Pra limitar casas decimais em Python […]

Como inverter uma string em Python
Neste artigo você vai aprender a como inverter uma string em Python, de uma maneira simples para você utilizar em seus programas Conteúdo também disponível […]
Como programar Python [dicas e códigos iniciantes aqui]
Python é uma linguagem de programação muito popular e uma de alto nível utilizada em diferentes tipos de aplicações, como para o desenvolvimento web, em Machine […]

Como faço pra não arredondar o valor?
round()
obrigado pelas orientações!
de nada Adélio!
to aprendendo agora como faço pra deixar duas casas decimais só, eu sei que com .format() , da pra deixar e é bem facil, mas com formart no inicio eu ja fico perdido ex:
print(f’O VALOR EM DOLAR QUE VOCÊ TEM É US$:{d}’) >>>> dando o format no começo nao sei onde por o comando (:.2f) já no outro exemplo ali eu sei.
print(‘OVALOR EM DOLAR QUE VOCÊ TEM É US$:{:.2f}’.format(d))
você faz assim:
print(f’O valor em dolar que você tem é US$: {valor:.2f}’)
Com licença, como faço pra dar uma entrada com apenas duas casas decimais?
exemplo de entrada:
raio = float(input(‘Digite o raio do circulo: ‘))
exemplo de saída:
print(f’A área do circulo é {3.14159 * (raio ** 2):.4f}’)
eu preciso que o valor da entrada seja com no máximo duas casas flutuantes.