以下の計算は 33.3333333 の値になるはずですが、値を表示するために結び付けると、メッセージ ボックスに正しい出力が得られません。
ここで最初に行う必要があるフォーマットはありますか?
decimal result = (1/3)*100;
MessageBox.Show(result.ToString());
整数を使用して計算を実行しているため、結果はint
に変換されdecimal
、代入されます。1/3
すでに0
(int
算術で) を掛けて100
も何も変わらないからです。
代わりに小数を使用します。
decimal result = (1m / 3m) * 100m;
m
数値リテラルの接尾辞は、それを小数にします。
Kay Zedからのコメントを組み込みました。
リテラルではなく変数を扱っている場合は、次のようにキャストできます。
decimal result = ((decimal)a / (decimal)b) * 100m;