Middle
Qual o tipo de dado mais otimizado para armazenar e trabalhar com valores monetários?
sobes.tech IA
Resposta da IA
Decimal.
Tem alta precisão, permite armazenar até 28-29 dígitos significativos e destina-se a cálculos financeiros onde a precisão é crítica. Ao contrário de float e double, que usam representação binária e podem levar a erros de arredondamento ao trabalhar com decimais, decimal usa uma representação decimal, o que elimina esses problemas.
Exemplo de uso:
// Declaração de uma variável do tipo decimal para armazenar um valor monetário
decimal price = 19.99m;
// Realização de operações aritméticas com valores monetários
decimal taxRate = 0.20m;
decimal total = price * (1 + taxRate);
// Exibir o resultado exato
Console.WriteLine($"Preço total: {total}"); // Resultado: Preço total: 23,988
Comparação com outros tipos de dados:
| Tipo de dado | Faixa aproximada de valores | Precisão | Adequado para valores monetários? |
|---|---|---|---|
float |
±1.5 x 10⁻⁴⁵ até ±3.4 x 10³⁸ | 7 dígitos decimais | Não |
double |
±5.0 x 10⁻³²⁴ até ±1.7 x 10³⁰⁸ | 15-17 dígitos decimais | Não |
decimal |
±1.0 x 10⁻²⁸ até ±7.9228 x 10²⁸ | 28-29 dígitos decimais | Sim |
O uso de decimal garante a precisão e fiabilidade necessárias ao trabalhar com dados financeiros, evitando erros de arredondamento que podem ocorrer com tipos de ponto flutuante.