Que signifie le M en notation littérale décimale C #?

Pour travailler avec des types de données décimaux, je dois le faire avec une initialisation variable:

decimal aValue = 50.0M; 

Que représente la pièce M?

Cela signifie que c’est un littéral décimal, comme d’autres l’ont dit. Cependant, les origines ne sont probablement pas celles suggérées ailleurs dans cette réponse. De la norme annotée C # (la version ECMA, pas la version MS):

Le suffixe decimal est M / m car D / d a déjà été pris par double . Bien qu’il ait été suggéré que M représente l’argent, Peter Golde rappelle que M a été choisi simplement comme la meilleure lettre decimal .

Une annotation similaire mentionne que les premières versions de C # incluaient respectivement “Y” et “S” pour short littéraux byte et short . Ils ont été abandonnés au motif qu’ils n’étaient pas très souvent utiles.

M signifie décimal. Si vous ne l’ajoutez pas, le nombre sera traité comme un double. D est double.

Un littéral réel suffixé par M ou m est de type décimal. Par exemple, les littéraux 1m, 1.5m, 1e10m et 123.456M sont tous de type décimal. Ce littéral est converti en une valeur décimale en prenant la valeur exacte et, si nécessaire, en arrondissant à la valeur représentable la plus proche en utilisant l’arrondi du banquier. Toute échelle apparente dans le littéral est conservée à moins que la valeur ne soit arrondie ou que la valeur ne soit nulle (dans ce dernier cas, le signe et l’échelle seront 0). Par conséquent, le littéral 2.900m sera analysé pour former la décimale avec le signe 0, le coefficient 2900 et l’échelle 3.

Référence: https://msdn.microsoft.com/en-us/library/aa691085.aspx

Probablement pour l’argent.