10 進数データ型を扱うには、変数の初期化でこれを行う必要があります。
decimal aValue = 50.0M;
Mの部分は何の略ですか?
他の人が言ったように、それは10進リテラルであることを意味します。ただし、起源はおそらく、この回答の他の場所で提案されているものではありません。C# Annotated Standard (MS バージョンではなく ECMA バージョン) から:
D/d は によって既に使用されているため、
decimal
接尾辞は M/mdouble
です。M はお金を表すと示唆されてきましたが、Peter Golde は M がdecimal
.
byte
同様の注釈では、C# の初期のバージョンには、short
リテラルの "Y" と "S" がそれぞれ含まれていたことに言及しています。それらはあまり役に立たないという理由で削除されました。
M は、「10 進数」の最初のあいまいでない文字を指します。追加しない場合、数値は double として扱われます。
D は 2 倍です。
M または m の接尾辞が付いた実数リテラルは、decimal (money)型です。たとえば、リテラル 1m、1.5m、1e10m、および 123.456M はすべて decimal 型です。このリテラルは、正確な値を取得することによって 10 進値に変換され、必要に応じて、バンカーの丸めを使用して最も近い表現可能な値に丸められます。値が丸められるか値がゼロでない限り、リテラルで明らかな位取りは保持されます (後者の場合、符号と位取りは 0 になります)。したがって、リテラル 2.900m は解析され、符号 0、係数 2900、位取り 3 の 10 進数が形成されます。