Qu'est-ce que le M pour support en C # décimal notation littérale?
Question
Pour travailler avec des types de données décimales, je dois le faire avec initialisation variable:
decimal aValue = 50.0M;
Qu'est-ce que la partie M représente?
La solution
Cela signifie qu'il est une décimale littérale, comme d'autres ont dit. Cependant, les origines ne sont probablement pas ceux proposés ailleurs dans cette réponse. De C # annotés standard (la version ECMA, pas la version MS):
Le suffixe
decimal
est M / m depuis D / d a déjà été prise pardouble
. Bien qu'il ait été suggéré que M signifie l'argent, Peter Golde rappelle que M est choisi simplement comme la prochaine meilleure lettredecimal
.
Une annotation similaire mentionne que les premières versions de C # inclus « Y » et « S » pour littérales byte
et short
respectivement. Ils ont été abandonnées au motif de ne pas être utile très souvent.
Autres conseils
M signifie décimal. Si vous ne l'ajoutez pas le numéro sera traité comme un double. D est double.
De spécifications 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
Notez que vous pouvez utiliser majuscules ou minuscules notations.
A vrai littéral suffixe M ou m est de type decimal. Par exemple, le littéraux 1m, 1,5 m, 1e10m et 123.456M sont de type decimal. Ce littéral est converti en une valeur décimale en prenant la valeur exacte, et, le cas échéant, arrondi à la valeur représentable la plus proche à l'aide de l'arrondissement de banquier. Toute échelle apparente en est conservé littéral à moins que la valeur est arrondie ou la valeur est égale à zéro (dans ce dernier cas, le signe et l'échelle seront 0). Par conséquent, le 2.900m littéral sera analysé pour former la décimale avec signe 0, coefficient 2900, et à l'échelle 3.
Référence: https://msdn.microsoft.com/en-us/ bibliothèque / aa691085.aspx
Eh bien, je suppose que M représente la mantisse. Décimal peut être utilisé pour économiser de l'argent, mais cela ne signifie pas, décimal utilisé seulement pour l'argent.
représente probablement l'argent.