DecimalHelper
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MyApp.Utility
{
<summary>
</summary>
public class DecimalHelper
{
#region メソッド
#region 数値のN捨N+1入を行います:Round
<summary>
</summary>
<param name="data"></param>
<param name="decimalFigure"></param>
<param name="roundNumber"></param>
<returns></returns>
public static decimal Round(decimal data, Int32 decimalFigure, Int32 roundNumber)
{
if ((roundNumber < 0) || (roundNumber > 8))
{
throw new ArgumentException("param:[roundNumber]が対象外の値");
}
decimal calcResult = 0;
decimal calcDigit = (decimal)System.Math.Pow(10, (double)decimalFigure);
decimal calcTmp = (decimal)1 - ((decimal)(roundNumber + 1) / 10);
if (data > 0)
{
calcResult = Math.Floor((data * calcDigit) + calcTmp) / calcDigit;
}
else
{
calcResult = Math.Ceiling((data * calcDigit) - calcTmp) / calcDigit;
}
return calcResult;
}
#endregion
#region 数値を指定の第N位で切り捨てる:Cut
<summary>
</summary>
<param name="data"></param>
<param name="decimalFigure"></param>
<returns></returns>
public static decimal Floor(decimal data, Int32 decimalFigure)
{
decimal calcResult = 0;
decimal calcDigit = (decimal)System.Math.Pow(10, (double)decimalFigure);
if (data > 0)
{
calcResult = Math.Floor(data * calcDigit) / calcDigit;
}
else
{
calcResult = Math.Ceiling(data * calcDigit) / calcDigit;
}
return calcResult;
}
#endregion
#endregion
}
}