2009-03-30 18 views
1

C#を使用して、小数点以下2桁を表示するように小数点をフォーマットしてから、その小数点を取り出して別の小数点以下に引きます。私はこれを最初に書式設定する文字列に変換してから10進数に戻すことなく、これを行うことができるようにしたいと考えています。私はこれを指定することを忘れて申し訳ありませんが、私は丸めたくありません、私はちょうど最後の小数点を切り捨てたいです。これを行う方法はありますか?出力の小数点以下を丸める方法は?

答えて

8

小数点を四捨五入したくない場合は、Decimal.Truncateを使用できます。残念ながら、すべての小数点以下を切り捨てることしかできません。これを解決するには、100を掛け可能性があり、100で切り捨て、除算、このような:

decimal d = ...; 
d = Decimal.Truncate(d * 100)/100; 

そして、あなたはそれを十分な回数

public static class DecimalExtensions 
{ 
    public static decimal TruncateDecimal(this decimal @this, int places) 
    { 
    int multipler = (int)Math.Pow(10, places); 
    return Decimal.Truncate(@this * multipler)/multipler; 
    } 
} 
2

あなたはそれをフォーマットする必要はありませんが、それを四捨五入します。 Math.Round関数を試してください。 Math.Round(number,2);を小数点以下2桁数を丸める:

3

を見てみましょう。

たとえば、this specific overload of Math.Roundを参照してください。

+0

+1行っている場合は、拡張メソッドを作成することができます。クリーン単純 –

関連する問題