Int, Double ou Decimal em C#: qual tipo numérico usar em cada caso

Foto: Daniil Komov / Pexels
Resumo rápido
- Descubra como o C# organiza os dados na memória.
- Entenda as diferenças técnicas entre números inteiros e decimais.
- Aprenda a escolher o tipo correto para cada situação real.
- Veja exemplos práticos de contadores a cálculos bancários.
Quando estamos começando a programar em C#, uma das primeiras dúvidas que surgem é: por que existem tantos tipos diferentes para representar números? Se o computador entende números, por que não usar um só para tudo? A resposta curta é: eficiência e precisão.
A gente vai desmistificar como cada tipo lida com a memória e por que usar um double onde deveria ser um decimal pode causar dores de cabeça no futuro. Vamos aprender a escolher a ferramenta certa para cada tarefa, garantindo que nosso código seja robusto e confiável.
O que você vai precisar
- Ter o ambiente .NET instalado
- Noções básicas de variáveis em C#
O que são tipos de dados e por que isso importa?
Pense na memória do seu computador como um conjunto de caixas de tamanhos diferentes. Quando declaramos uma variável, estamos reservando uma dessas caixas. Se a gente coloca um número pequeno em uma caixa gigante, estamos desperdiçando espaço. Se tentamos colocar algo maior que a caixa, o programa trava ou corta o dado.
Escolher o tipo certo é o equilíbrio entre economizar memória e garantir que o número caiba lá dentro sem perder informações. Para iniciantes, isso é fundamental para evitar bugs estranhos onde o resultado de uma soma parece, por algum motivo, incorreto.
Conhecendo os tipos numéricos: int, float, double e decimal
Cada tipo possui um tamanho fixo em bytes. O int é o rei para contagens simples, enquanto os outros lidam com números quebrados (ponto flutuante) de formas distintas. O decimal, em especial, é o mais preciso de todos para dinheiro.
Tabela de tipos numéricos
| Tipo | Tamanho | Uso principal |
|---|---|---|
| int | 4 bytes | Números inteiros |
| float | 4 bytes | Precisão simples |
| double | 8 bytes | Precisão dupla |
| decimal | 16 bytes | Cálculos financeiros |
Como escolher o tipo certo: a regra de ouro
Para decidir rápido, a gente faz um pequeno fluxograma mental. O número é inteiro? Use int. O número é decimal e envolve dinheiro? Use decimal obrigatoriamente. É para cálculos científicos ou algo que não exija precisão absoluta? double serve bem.
Lembre-se: nunca use tipos decimais para contadores, pois você desperdiça processamento, e nunca use float ou double para calcular saldo de banco, pois eles acumulam erros de arredondamento imperceptíveis que somam centavos errados ao final do mês.
Exemplos resolvidos: do contador ao sistema bancário
Vamos ver na prática como declarar essas variáveis. O decimal requer o sufixo 'm' para identificar o valor corretamente no código.
csharp
int cliques = 150;
double temperatura = 23.5;
decimal saldo = 1250.75m;
Console.WriteLine($"Cliques: {cliques}");
Console.WriteLine($"Temp: {temperatura}");
Console.WriteLine($"Saldo: {saldo}");Saída esperada
Cliques: 150
Temp: 23.5
Saldo: 1250.75Erros comuns que todo iniciante comete
O erro mais clássico é o 'erro de ponto flutuante'. Quando você faz 0.1 + 0.2 usando double, o resultado não é exatamente 0.3, mas algo como 0.30000000000000004. Para um programa de física, tudo bem. Para um banco, isso é um desastre.
Outro erro é tentar guardar um número maior que 2 bilhões em um int. Isso causa um estouro (overflow), e o número vira um negativo bizarro. Sempre valide se o valor esperado pode crescer além desse limite.
Sempre use 'm' ao final de valores decimais, ex: 10.50m.
Exercícios para praticar
Qual tipo você escolheria para armazenar a idade de uma pessoa?
Ver resposta
O tipo ideal é o
int. A idade é sempre um número inteiro e não precisa de casas decimais para ser representada.Você está criando um app de investimentos. Qual tipo usar para o preço de uma ação?
Ver resposta
Você deve usar o
decimal. Como envolve dinheiro, a precisão absoluta é obrigatória para evitar erros de arredondamento comuns emdouble.E para a velocidade de um objeto em um jogo, qual seria o mais indicado?
Ver resposta
O
floatoudouble. Em jogos, a performance é prioridade e pequenas variações na precisão raramente impactam o jogador, fazendo ofloatser muito usado por ocupar menos memória que odouble.
Perguntas frequentes
Posso usar int para dinheiro?
Não é recomendável. Você teria que trabalhar em centavos e converter na hora de exibir, o que torna o código complexo e propenso a erros.
Por que o decimal é mais lento?
Porque ele é um tipo mais robusto, processado via software para garantir precisão decimal exata, diferentemente do double que é processado diretamente pelo hardware (CPU).
O que acontece se eu colocar um número muito grande em um int?
Ocorre um erro de estouro de memória, fazendo o valor 'dar a volta' e se tornar um número negativo.
Conclusão
Dominar os tipos de dados é o primeiro passo para escrever sistemas profissionais. Agora que você sabe a diferença entre eles, não tenha medo de testar e observar como cada um se comporta em seus projetos. Pratique essa escolha consciente e seu código agradecerá!
Atualizado em 28/09/2026.
Curtiu desvendar esse universo? Conta pra gente nos comentários o que mais você quer aprender sobre redes e compartilhe com seus amigos que estão começando na TI!
Comentários
Postar um comentário