【C#】decimal サフィックスのm

ようすけ

2010年03月15日 16:07

プログラムの中に何かの計算式があって、

Convert.ToInt32(fun / 6m * 10m);

と書いてあり(funはint型)、

6m、10m の m って何?
ってなりました。

どうもdecimal型で計算してるぽいなぁと思って調べました。

マイクロソフトリファレンスより
http://msdn.microsoft.com/ja-jp/library/364x0z75.aspx

decimal キーワードは、128 ビットのデータ型を示します。
decimal 型は、浮動小数点型よりも有効桁数が多く、範囲が狭いので、財務や金融の計算に適しています。

範囲
±1.0 × 10−28 to ±7.9 × 1028


実数値リテラルを decimal として扱うには、サフィックス m または M を使用します。

decimal myMoney = 300.5m;
サフィックス m がない場合は double として扱われ、コンパイラ エラーになります。

整数型は、暗黙的に decimal に変換され、結果は decimal になります。
したがって、サフィックスなしで整数リテラルを使用して 10 進変数を初期化できます。
decimal myMoney = 300;


decimal 型と数値の整数型を同じ式に混在させることもできます。
同じ式に decimal と int が混在している例を示します。結果は decimal 型になります。
decimal d = 9.1m;
int y = 3;
d + y はdecimal型の12.1

てことは、さっきの計算式はint型とサフィックスをくっつけたdecimal型の値を計算して、
結果をdecimalで求めてるって事(・・・であってんのかな(汗)

この記事がお役に立ったようでしたらぜひクリックお願いしますm(_ _)m
人気ブログランキングへ


関連記事