変数の型が排他的に指定されている場合、なぜ接尾辞があるべきですか?
割り当てたい値に小数点がある場合のみ、キャストが必要です。あなたの場合、50.0
はdouble
のリテラルを表します。 int
decimal
にあるため、以下は、接尾辞またはキャストせずにコンパイルすることを
decimal d = (decimal)1.23456789123456789;
Console.WriteLine(d); // Prints 1.23456789123457
decimal e = 1.23456789123456789M;
Console.WriteLine(e); // Prints 1.23456789123456789
注:あなたはこの
decimal l = (decimal)50.0; // Do not do this!
が、これは変換エラーをもたらす可能性のように、キャストを追加することにより、サフィックスを避けることができます変換が精度を失うことはありません:
decimal l = 50;
あなたがM
サフィックスをすることが別の場所で表現しています小数を操作S:
decimal tenPercentBroken = myDecimal * 0.1; // Does not compile
decimal tenPercentCorrect = myDecimal * 0.1M; // Compiles fine
こんにちは.. here..https参照してください。//stackoverflow.com/questions/977484/what-does-the-m-stand-for-in-c-sharp-decimal-をリテラル記法 – Wheels73
答えは[right here](https://stackoverflow.com/a/977514/366904)でした。もう1つはリンク先の質問です。合理的な音が –