1

以下の計算は 33.3333333 の値になるはずですが、値を表示するために結び付けると、メッセージ ボックスに正しい出力が得られません。

ここで最初に行う必要があるフォーマットはありますか?

decimal result = (1/3)*100;
MessageBox.Show(result.ToString());

ここに画像の説明を入力

4

1 に答える 1

7

整数を使用して計算を実行しているため、結果はintに変換されdecimal、代入されます。1/3すでに0(int算術で) を掛けて100も何も変わらないからです。

代わりに小数を使用します。

decimal result = (1m / 3m) * 100m;

m数値リテラルの接尾辞は、それを小数にします。

Kay Zedからのコメントを組み込みました。

リテラルではなく変数を扱っている場合は、次のようにキャストできます。

decimal result = ((decimal)a / (decimal)b) * 100m;
于 2012-06-08T09:39:10.913 に答える