以下の計算は 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;