464 Stimmen

Wofür steht das M in der dezimalen Literalnotation von C#?

Um mit dezimalen Datentypen arbeiten zu können, muss ich dies mit der Initialisierung von Variablen tun:

decimal aValue = 50.0M;

Wofür steht der Teil M?

546voto

Jon Skeet Punkte 1325502

Es bedeutet, dass es sich um eine Dezimalzahl handelt, wie andere bereits gesagt haben. Die Ursprünge sind jedoch wahrscheinlich nicht die, die an anderer Stelle in dieser Antwort vorgeschlagen werden. Von der C# Annotierter Standard (die ECMA-Version, nicht die MS-Version):

En decimal Suffix ist M/m, da D/d bereits besetzt war mit double . Es wurde zwar vorgeschlagen, dass M für Geld steht, erinnert Peter Golde daran dass das M einfach als der nächstbeste Buchstabe beste Buchstabe in decimal .

In einer ähnlichen Anmerkung wird erwähnt, dass frühe Versionen von C# "Y" und "S" für byte y short bzw. Literale. Sie wurden gestrichen, da sie nicht sehr oft nützlich sind.

134voto

Shadi Namrouti Punkte 9454

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.

35voto

MDStephens Punkte 943

M bezieht sich auf das erste nicht eindeutige Zeichen in "decimal". Wenn Sie es nicht hinzufügen, wird die Zahl als Double behandelt.

D ist doppelt.

21voto

Lucky Brain Punkte 1401

Ein reelles Literal mit dem Suffix M oder m ist vom Typ Dezimal (Geld) . Zum Beispiel sind die Literale 1m, 1.5m, 1e10m und 123.456M alle vom Typ decimal. Dieses Literal wird in einen Dezimalwert umgewandelt, indem der exakte Wert genommen wird und, falls erforderlich, auf den nächsten darstellbaren Wert gerundet wird, wobei die Rundung durch die Bank erfolgt. Jede im Literal erkennbare Skala bleibt erhalten, es sei denn, der Wert wird gerundet oder ist gleich Null (in letzterem Fall sind Vorzeichen und Skala gleich 0). Das Literal 2.900m wird also geparst, um eine Dezimalzahl mit Vorzeichen 0, Koeffizient 2900 und Skala 3 zu bilden.

Lesen Sie mehr über echte Literale

-4voto

Ashvani mishra Punkte 121

Nun, ich denke, M steht für die Mantisse. Dezimal kann verwendet werden, um Geld zu sparen, aber das bedeutet nicht, dass Dezimal nur für Geld verwendet wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X