¿Qué significa M en la notación literal decimal de C#?

Resuelto coson asked hace 15 años • 6 respuestas

Para trabajar con tipos de datos decimales, tengo que hacer esto con la inicialización de variables:

decimal aValue = 50.0M;

¿Qué significa la parte M?

coson avatar Jun 11 '09 01:06 coson
Aceptado

Significa que es un literal decimal, como han dicho otros. Sin embargo, los orígenes probablemente no sean los sugeridos en otras partes de esta respuesta. Del estándar anotado de C# (la versión ECMA, no la versión MS):

El decimalsufijo es M/m ya que D/d ya fue tomado por double. Aunque se ha sugerido que M significa dinero, Peter Golde recuerda que M fue elegida simplemente como la siguiente mejor letra en decimal.

Una anotación similar menciona que las primeras versiones de C# incluían "Y" y "S" para literales bytey respectivamente. shortFueron descartados por no ser útiles con mucha frecuencia.

Jon Skeet avatar Jun 10 '2009 19:06 Jon Skeet

De las especificaciones de C#:

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

Tenga en cuenta que puede utilizar una notación en mayúsculas o minúsculas.

Shadi Alnamrouti avatar Jan 16 '2019 12:01 Shadi Alnamrouti

M se refiere al primer carácter no ambiguo de "decimal". Si no lo suma, el número se tratará como doble.

D es doble.

MDStephens avatar Jun 10 '2009 18:06 MDStephens

Un literal real con el sufijo M o m es de tipo decimal (dinero) . Por ejemplo, los literales 1m, 1,5m, 1e10m y 123,456M son todos de tipo decimal. Este literal se convierte a un valor decimal tomando el valor exacto y, si es necesario, redondeando al valor representable más cercano mediante el redondeo bancario. Cualquier escala aparente en el literal se conserva a menos que el valor se redondee o el valor sea cero (en cuyo último caso el signo y la escala serán 0). Por lo tanto, el literal 2.900m se analizará para formar el decimal con signo 0, coeficiente 2900 y escala 3.

Leer más sobre literales reales

Lucky Brain avatar Mar 28 '2016 00:03 Lucky Brain