web-dev-qa-db-fra.com

Que signifie M dans la notation littérale décimale C #?

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?

258
coson

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 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 prochaine meilleure lettre de decimal.

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.

333
Jon Skeet

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

10
MDStephens

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.

5
Shadi Namrouti

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

1
LuckyBrain

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.

0
Ashvani mishra