Antworten:
Es bedeutet, dass es ein Dezimal-Literal ist, wie andere gesagt haben. Die Ursprünge sind jedoch wahrscheinlich nicht die an anderer Stelle in dieser Antwort vorgeschlagenen. Aus dem C # Annotated Standard (die ECMA-Version, nicht die MS-Version):
Das
decimal
Suffix ist M / m, da D / d bereits von übernommen wurdedouble
. Obwohl vermutet wurde, dass M für Geld steht, erinnert sich Peter Golde, dass M einfach als nächstbester Buchstabe in ausgewählt wurdedecimal
.
In einer ähnlichen Anmerkung wird erwähnt, dass frühe Versionen von C # "Y" und "S" für byte
bzw. short
Literale enthielten . Sie wurden fallen gelassen, weil sie nicht sehr oft nützlich waren.
Aus C # -Spezifikationen:
var f = 0f; // float
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long
Beachten Sie, dass Sie eine Groß- oder Kleinschreibung verwenden können.
M bezieht sich auf das erste nicht mehrdeutige Zeichen in "Dezimal". Wenn Sie es nicht hinzufügen, wird die Zahl als Doppel behandelt.
D ist doppelt.
0.42
in eine Dezimalzahl umwandeln, erhalten Sie möglicherweise einen anderen Wert als 0.42M
(und dasselbe gilt für die Verwendung eines Doppelliteral anstelle eines Float-Literal - float val = 423.3
schlägt ebenfalls fehl). Sie wählen also zwischen einem subtil falschen Verhalten und einem Compilerfehler, dessen Behebung eine halbe Sekunde dauert und den CLR- und C # -Standards entspricht.
Ein reales Literal mit dem Suffix M oder m ist vom Typ Dezimal. Beispielsweise sind die Literale 1 m, 1,5 m, 1e10 m und 123,456 m alle vom Typ Dezimal. Dieses Literal wird in einen Dezimalwert umgewandelt, indem der genaue Wert genommen und gegebenenfalls mithilfe der Bankrundung auf den nächsten darstellbaren Wert gerundet wird. Jede im Literal sichtbare Skala bleibt erhalten, es sei denn, der Wert ist gerundet oder der Wert ist Null (in letzterem Fall sind Vorzeichen und Skala 0). Daher wird das Literal 2.900 m analysiert, um die Dezimalstelle mit Vorzeichen 0, Koeffizient 2900 und Skala 3 zu bilden.
Nun, ich denke M repräsentiert die Mantisse. Dezimal kann verwendet werden, um Geld zu sparen, aber das bedeutet nicht, dass Dezimalzahl nur für Geld verwendet wird.