Что означает M в десятичной литеральной записи C #? - PullRequest
251 голосов
/ 10 июня 2009

Чтобы работать с десятичными типами данных, я должен сделать это с инициализацией переменной:

decimal aValue = 50.0M;

Что означает деталь М?

Ответы [ 6 ]

323 голосов
/ 10 июня 2009

Это означает, что это десятичный литерал, как говорили другие. Тем не менее, происхождение, вероятно, не те, которые предлагаются в другом месте в этом ответе. Из C # Annotated Standard (версия ECMA, а не версия MS):

Суффикс decimal - это М / м, так как Д / Д был уже взят double. Хотя было высказано предположение, что М стоит денег, вспоминает Питер Голде что М был выбран просто как следующий Лучшее письмо в decimal.

В аналогичной аннотации упоминается, что ранние версии C # включали "Y" и "S" для литералов byte и short соответственно. Они были отброшены на том основании, что они не очень часто используются.

10 голосов
/ 10 июня 2009

M означает десятичное число. Если вы не добавите его, число будет считаться двойным. D двойной.

4 голосов
/ 16 января 2019

Из спецификации 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

Обратите внимание, что вы можете использовать заглавные или маленькие обозначения.

1 голос
/ 28 марта 2016

Действительный литерал с суффиксом M или m имеет тип decimal. Например, литералы 1m, 1.5m, 1e10m и 123.456M имеют десятичный тип. Этот литерал преобразуется в десятичное значение путем получения точного значения и, при необходимости, округления до ближайшего представимого значения с использованием округления банкира. Любая шкала, видимая в литерале, сохраняется, если только значение не округлено или значение не равно нулю (в этом случае знак и масштаб будут равны 0). Следовательно, литерал 2.900m будет проанализирован для формирования десятичной дроби со знаком 0, коэффициентом 2900 и шкалой 3.

Ссылка: https://msdn.microsoft.com/en-us/library/aa691085.aspx

0 голосов
/ 24 февраля 2019

Ну, я думаю, М представляет мантиссу. Десятичная дробь может использоваться для экономии денег, но это не значит, что десятичная дробь используется только для денег.

0 голосов
/ 10 июня 2009

Вероятно, означает Деньги.

...