Afin de travailler avec des types de données décimaux, je dois le faire avec l'initialisation de variable:
decimal aValue = 50.0M;
Que signifie la partie 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. À partir de C # Annotated Standard (version ECMA et non MS):
Le suffixe
decimal
est M/m puisque D/d était déjà pris pardouble
. Bien qu'il ait été suggéré que M représente l’argent, Peter Golde rappelle que M a été choisi simplement comme prochaine meilleure lettre dedecimal
.
Une annotation similaire mentionne que les premières versions de C # comprenaient "Y" et "S" pour les littéraux byte
et short
, respectivement. Ils ont été abandonnés au motif de ne pas être utiles très souvent.
M signifie décimal. Si vous ne l'ajoutez pas, le nombre sera traité comme un double. D est double.
A partir des 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 des majuscules ou des petites notations.
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 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 de Banker. Toute échelle apparente dans le littéral est conservée sauf si la valeur est arrondie ou si la valeur est zéro (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
Eh bien, je suppose que M représente la mantisse. La décimale peut être utilisée pour économiser de l'argent, mais cela ne signifie pas, la décimale ne doit être utilisée que pour l'argent.