O tipo decimal (um apelido para o tipo System.Decimal do .NET) é um tipo numérico com precisão de 128 bits, o que o torna apropriado para cálculos enormes e de grande precisão, tais como cálculos financeiros.
Em C# 2.0, o tipo decimal ocupa 12 bytes, como pode ser observado no trecho de código abaixo:
Console.WriteLine("O tipo decimal ocupa " + sizeof(decimal) + " bytes");
É preciso ter muito cuidado ao atribuir um literal de ponto-flutuante à uma variável do tipo decimal. Veja:
decimal valor = 34.50;
Este trecho de código não compila. Veja o erro reportado:
Literal of type double cannot be implicitly converted
to type 'decimal'; use an 'M' suffix to create a
literal of this type
Esta mensagem nos diz que não é possível converter implicitamente um tipo double para um tipo decimal. Para solucionar isso, basta usar a letra "M" ou "m" após o valor literal. Veja:
decimal valor = 34.50m;
Para finalizar, se estivermos atribuindo um literal inteiro à uma variável do tipo decimal, o uso do "M" ou "m" é dispensado. O trecho de código abaixo compila sem quaisquer problemas:
decimal valor = 34;
3.0 ponto(s). Avaliado por 2 pessoas
- Currently 3/5 Stars.
- 1
- 2
- 3
- 4
- 5