O que faz o M representam em notação literal C # Decimal?
Pergunta
Para trabalhar com tipos de dados decimal, eu tenho que fazer isso com inicialização de variáveis:
decimal aValue = 50.0M;
O que o suporte M parte para?
Solução
Isso significa que é um decimal literal, como já foi dito. No entanto, as origens provavelmente não são os sugeridos em outras partes deste resposta. Do C # Annotated Padrão (a versão ECMA, não a versão MS):
O sufixo é
decimal
H / m, uma vez D / d Já foi feita pelodouble
. Embora tenha sido sugerido que M significa dinheiro, Peter Golde lembra que M foi escolhida simplesmente como o próximo melhor letra nodecimal
.
A anotação semelhante menciona que versões iniciais de C # incluído "Y" e "S" para byte
e short
literais respectivamente. Eles foram lançadas sobre as razões de não ser útil muitas vezes.
Outras dicas
M significa decimal. Se você não adicioná-lo o número será tratado como um duplo. D é o dobro.
A partir especificações C #:
var f = 0f; // single
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long
Note que você pode usar maiúsculas ou pequenas anotações.
Um literal verdadeiro sufixo M ou m é do tipo decimal. Por exemplo, os literais 1M, 1,5 m, 1e10m, e 123.456M são todos do tipo decimal. Este literal é convertido para um valor decimal, tomando o valor exato, e, se necessário, o arredondamento para o valor representável mais próximo usando o arredondamento do banqueiro. Qualquer escala aparente na literal é preservada a menos que o valor é arredondado ou o valor é zero (neste último caso, o sinal e escala será 0). Assim, a 2.900m literal será analisado para formar o decimal com sinal 0, coeficiente de 2900, e escala 3.
Referência: https://msdn.microsoft.com/en-us/ biblioteca / aa691085.aspx
Bem, eu acho que M representam a mantissa. Decimal pode ser usado para poupar dinheiro, mas isso não significa, decimal usado apenas para o dinheiro.
Provavelmente significa dinheiro.