お世話になります。

アルゴリズムか言語特有の問題かが解らないのですが…

C#にて、スタックポインタを使用した、逆ポーランド法で式を計算するプログラムを
書いているときですが、計算する変数はdecimalを使って、小数まで計算できる
ようにしたのですが、表題のような計算式を入れると、計算結果が『10.0000000000000000』
桁数は正確に数えたわけではないので、多分これくらいだったと思います。

これというのは、表示されてはいないものの、『ぴったり10ではない』ということなのでしょぅか。
それとも、10として計算してはいるけれど、直前の計算で10/3=3.333333333...
としてしまっているため、その時の桁数通りに扱われているということなのでしょうか。

行いたいことは、当然『10』として結果を得たいのです。いくら数的に10であっても、
できれば小数点以下は表示させたくありません。もちろん、表示する時点に数値を
調べ、小数点以下が0ならば小数点から下は表示しないと言った文字列操作で
できなくはないですが、あまり解決策としてはよくありません。
このように、『小数点でも割り切れない値』というものを、正しい値のまま
扱うことはできますでしょうか。

対策方法を教えてください。
お願いいたします。