Sobes.tech
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.