C#指定した精度の数値に切り捨てする

スポンサーリンク

数値を切り捨てするには、System.Math クラスの Floor メソッドと Ceiling メソッドを使用します。数値が正の数であれば、Floor メソッドを、負の数であれば、Ceiling メソッドを使用します。

これを利用して、指定した桁数で切り捨てするメソッドがあると便利です。指定した桁数で切り捨てするには、累乗を用いて指定した桁数を整数とする必要があります。これを毎回書くのは煩わしいので、以下のようなメソッドを考えます。

Floor メソッド、Ceiling メソッド及び、Pow メソッドの詳細は以下をご覧ください。

サンプルコード

以下にサンプルコードを示します。

C# 全般
/// ------------------------------------------------------------------------
/// <summary>
///     指定した精度の数値に切り捨てします。</summary>
/// <param name="dValue">
///     丸め対象の倍精度浮動小数点数。</param>
/// <param name="iDigits">
///     戻り値の有効桁数の精度。</param>
/// <returns>
///     iDigits に等しい精度の数値に切り捨てられた数値。</returns>
/// ------------------------------------------------------------------------
public static double ToRoundDown(double dValue, int iDigits) {
    double dCoef = System.Math.Pow(10, iDigits);

    return dValue > 0 ? System.Math.Floor  (dValue * dCoef) / dCoef:
                        System.Math.Ceiling(dValue * dCoef) / dCoef;
}

使用例は以下のようになります。

C# 全般
    // 有効小数桁数が小数第 2 位になるように切り捨てる
    double dValue = ToRoundDown(12.328, 2);

    // 切り捨てした結果を表示する
    MessageBox.Show(dValue.ToString());  //12.32

関連するリファレンス

準備中です。

スポンサーリンク