Para trabalhar com tipos de dados decimais, eu tenho que fazer isso com inicialização variável:
decimal aValue = 50.0M;
O que a parte M representa?
Isso significa que é um literal decimal, como outros já disseram. No entanto, as origens provavelmente não são as sugeridas em outras partes desta resposta. Do padrão anotado em C # (a versão do ECMA, não a versão do MS):
O
decimal
sufixo é M / m desde que D / d já foi usadodouble
. Embora tenha sido sugerido que M significa dinheiro, Peter Golde lembra que M foi escolhido simplesmente como a melhor melhor carta seguintedecimal
.
Uma anotação semelhante menciona que as versões anteriores do C # incluíam "Y" e "S" para byte
e short
literais, respectivamente. Eles foram descartados por não serem úteis com muita frequência.
Nas especificações do C #:
Observe que você pode usar uma notação maiúscula ou minúscula.
fonte
M refere-se ao primeiro caractere não ambíguo em "decimal". Se você não o adicionar, o número será tratado como um dobro.
D é o dobro.
fonte
0.42
em decimal pode fornecer um valor diferente de0.42M
(e o mesmo para o uso de um literal duplo no lugar de um literal flutuante -float val = 423.3
também falha). Portanto, você escolhe entre um comportamento sutilmente errado e um erro do compilador que leva meio segundo para corrigir e estar em conformidade com os padrões CLR e C #.Um literal real com o sufixo M ou m é do tipo decimal. Por exemplo, os literais 1m, 1,5m, 1e10m e 123.456M são todos do tipo decimal. Esse literal é convertido em um valor decimal, obtendo o valor exato e, se necessário, arredondando para o valor representável mais próximo usando o arredondamento de banca. Qualquer escala aparente no literal é preservada, a menos que o valor seja arredondado ou o valor seja zero (nesse caso, o sinal e a escala serão 0). Portanto, o literal 2.900m será analisado para formar o decimal com o sinal 0, coeficiente 2900 e escala 3.
Leia mais sobre literais reais
fonte
Bem, acho que M representa a mantissa. O decimal pode ser usado para economizar dinheiro, mas isso não significa que o decimal é usado apenas para o dinheiro.
fonte