2011-07-29 52 views
1

decimalを小数点以下第2位まで丸めて、それをdecimalとして保持するにはどうすればよいですか?小数点以下2〜4小数点以下切り上げ

私はこれを行うことができますが、それはコードのにおいがあります。

var myResult = Decimal.Parse(myDecimal.ToString("0.00##")); 

これは予期した結果です。

0.028 -> 0.028 
0.02999 -> 0.03 
+0

を使用するには、私の[答え]に続いて(http://stackoverflow.com/questions/6872165/rounding-to - 最低でも2から4桁まで/ 6872192#6872192) - なぜ計算の精度を下げたいですか?または、表示目的で計算結果を書式設定したいのは本当ですか?価格は – Jamiec

+0

です。私たちは現在、2つの場所で 'Math.Round'を行っています。 –

+0

'0.02689' - >' 0.03'や '0.027'や' 0.0269'をどう扱うか疑問に思っています(2から4の10進数) – V4Vendetta

答えて

4

decimal doesntの(または、おそらくべきではありません)あなたは、ディスプレイのためにそれをフォーマットするまで、「小数点以下の桁数を」持っているを使用することができます。

+0

私はこれを自分で書こうとしていましたが、あなたは私にそれを打ち負かしました:)目的を表示することを除いて、これは全く問題ではありません。 –

+0

私はこれを 'DataTable'に貼り付けて表示しています。そのカラムの型は小数です。私は 'Math.Round'を避けようとしています –

+0

@Daniel - その場合は、実際の10進値をデータテーブルに貼り付け、表示するときにフォーマットします。表示時にはいつもフォーマット文字列を指定するオプションがありますデータ。 (例えば、「Eval」などを使用する場合)。 – Jamiec

2

あなたは

Math.Round(myResult, 4); 
+0

これはうまくいかないでしょう。上記の例を参照してください。 –

+2

"それは動作しません"と言ったときは注意してください。理由を説明。さもなければ、ここに来る人々はこのコードに何か間違っていると思うでしょうし、そうではありません。そのメモでは、私はあなたが "それは動作しません"と言うとき、あなたは "私の目的のためにはうまくいかない"ということを意味します。 –

関連する問題