Decimal vs Double em C#: qual tipo de dados escolher e quando usar?
Olá a todos! Sou iniciante em C# e, ao escrever uma calculadora para uma loja online, me deparei com o problema de escolher o tipo de dados para cálculos monetários.
Tenho um código simples:
```csharp
double price = 19.99;
double tax = 0.21;
double total = price * (1 + tax);
Console.WriteLine(total); // Exibe algo como 24.1879... em vez de 24.1879
```
Eu esperava obter exatamente 24.1879, mas às vezes aparecem caudas estranhas como 24.187899999999997. Isso não acontece sempre, mas com frequência suficiente para quebrar a lógica de comparação de preços.
Pesquisei no Google e descobri que existe o tipo `decimal`, mas não entendo a diferença. Parece que ambos armazenam números fracionários. Quando substituí `double` por `decimal`:
```csharp
decimal price = 19.99m;
decimal tax = 0.21m;
decimal total = price * (1 + tax);
Console.WriteLine(total); // 24.1879
```
No answers yet.
Faça login para deixar uma resposta
Blogs
CI/CD para projetos Kotlin com GitHub Actions: guia passo a passo