Что означает M в десятичной буквенной нотации C#?
чтобы работать с десятичными типами данных, я должен сделать это с инициализацией переменной:
decimal aValue = 50.0M;
что означает часть M?
4 ответов
это означает, что это десятичный литерал, как говорили другие. Однако истоки, вероятно, не те, которые предлагаются в другом месте этого ответа. От C# Аннотированный Стандарт (версия ECMA, не версия MS):
на
decimal
суффикс м/м с д/д был уже взятdouble
. Хотя было высказано предположение, что М выступает за деньги, вспоминает Питер Голд что M был выбран просто как следующий лучшее письмо вdecimal
.
в аналогичной аннотации упоминается, что ранние версии C# включали "Y" и "S" для byte
и short
литералы соответственно. Их сбрасывали на том основании, что они не очень часто бывают полезны.
M означает десятичное. Если вы не добавите его, число будет рассматриваться как двойное. D-это двойной.
реальный литерал с суффиксом M или m имеет тип decimal. Например, литералы 1m, 1.5 m, 1e10m и 123.456 M имеют тип decimal. Этот литерал преобразуется в десятичное значение, принимая точное значение и, при необходимости, округляя до ближайшего представимого значения с помощью округления банкира. Любой масштаб, видимый в литерале, сохраняется, если значение не округлено или значение равно нулю (в последнем случае знак и масштаб будут равны 0). Следовательно, литерал 2.900 m будет проанализирован на форма десятичный знак 0, коэффициент 2900, и шкалы 3.
ссылка:https://msdn.microsoft.com/en-us/library/aa691085.aspx