J#(Java)指定した精度の数値に四捨五入する

スポンサーリンク

数値を丸めるのは、System.Math クラスの Round メソッドで可能です。しかし、この Round メソッドは「偶数丸め」(JIS 丸めともいう) と呼ばれる手法で数値を丸めます。

この「偶数丸め」は日本国でも標準とされているのですが、残念ながらあまり知られていません。やはり、四捨五入が必要な業務が多かったりするわけです。

以下は、指定した桁で四捨五入をするメソッドです。

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

サンプルコード

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

J# 全般
/************************************************************************
 *      指定した精度の数値に四捨五入します。
 *
 * @param   dValue      丸め対象の倍精度浮動小数点数。
 * @param   iDigits     戻り値の有効桁数の精度。
 * @return              iDigits に等しい精度の数値に四捨五入された数値。
 ************************************************************************/
public static final double ToHalfAdjust(final double dValue, final int iDigits) {
    final double dCoef = System.Math.Pow(10, iDigits);

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

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

J# 全般
    // 有効小数桁数が小数第 2 位になるように四捨五入する
    double dValue = ToHalfAdjust(12.325, 2);

    // 四捨五入した結果を表示する
    MessageBox.Show(System.Convert.ToString(dValue));  //12.33

関連するリファレンス

準備中です。

スポンサーリンク