指定した精度の数値に四捨五入する
スポンサーリンク
数値を丸めるのは、System.Math クラスの Round メソッドで可能です。しかし、この Round メソッドは「偶数丸め」(JIS 丸めともいう) と呼ばれる手法で数値を丸めます。
この「偶数丸め」は日本国でも標準とされているのですが、残念ながらあまり知られていません。やはり、四捨五入が必要な業務が多かったりするわけです。
以下は、指定した桁で四捨五入をするメソッドです。
Floor メソッド、Ceiling メソッド及び、Pow メソッドの詳細は以下をご覧ください。
サンプルコード
以下にサンプルコードを示します。
C# 全般
/// ------------------------------------------------------------------------ /// <summary> /// 指定した精度の数値に四捨五入します。</summary> /// <param name="dValue"> /// 丸め対象の倍精度浮動小数点数。</param> /// <param name="iDigits"> /// 戻り値の有効桁数の精度。</param> /// <returns> /// iDigits に等しい精度の数値に四捨五入された数値。</returns> /// ------------------------------------------------------------------------ public static double ToHalfAdjust(double dValue, int iDigits) { 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; }
使用例は以下のようになります。
C# 全般
// 有効小数桁数が小数第 2 位になるように四捨五入する double dValue = ToHalfAdjust(12.325, 2); // 四捨五入した結果を表示する MessageBox.Show(dValue.ToString()); //12.33
関連するリファレンス
準備中です。