.NET 文字列を整数に変換する(小数点以下を四捨五入)
C#、VB.NETでString型の文字列をint型の整数に変換する際、小数点以下を四捨五入するメソッドを作成しました。
以前ご紹介した「.NET 小数点以下を四捨五入する」を用いて、文字列以外にもfloat型、double型などからの変換にも対応しております。
●文字列を整数に変換する(小数点以下を四捨五入)
/// <summary>
/// 値を四捨五入し、指定の桁数に丸めます
/// </summary>
/// <param name="value">値</param>
/// <param name="decimals">小数部桁数</param>
/// <param name="mode">丸める方法</param>
/// <returns>丸められた値</returns>
public static double Round(double value, int decimals, MidpointRounding mode)
{
// 小数部桁数の10の累乗を取得
double pow = Math.Pow(10, decimals);
return Math.Round(value * pow, mode) / pow;
}
/// <summary>
/// 値を四捨五入し、指定の桁数に丸めます
/// </summary>
/// <param name="value">値</param>
/// <param name="decimals">小数部桁数</param>
/// <param name="mode">丸める方法</param>
/// <returns>丸められた値</returns>
public static double Round(object value, int decimals, MidpointRounding mode)
{
return Round(Convert.ToDouble(value), decimals, mode);
}
/// <summary>
/// 値の小数点以下を四捨五入し、整数に丸めます
/// </summary>
/// <param name="value">値</param>
/// <param name="mode">丸める方法</param>
/// <returns>丸められた値</returns>
public static int Round(object value, MidpointRounding mode)
{
return Convert.ToInt32(Round(value, 0, mode));
}
/// <summary>
/// 値の小数点以下を四捨五入し、整数に丸めます
/// </summary>
/// <remarks>数値が2つの数値の中間に位置する場合、ゼロから遠いほうの近似値に丸めます</remarks>
/// <param name="value">値</param>
/// <returns>丸められた値</returns>
public static int Round(object value)
{
return Round(value, MidpointRounding.AwayFromZero);
}
※
Clipボタンをクリックすると、「ConvertUtility」というクラスがコピーされます。このソースを「ConvertUtility.cs」ファイルにコピーするとすぐご利用いただけます。
上記Roundメソッドは、一般的な四捨五入(1.5 ⇒ 2、2.5 ⇒ 3のように数値が2つの数値の中間に位置する場合、ゼロから遠いほうの近似値に丸める)を行います。
このページでは、上記Roundメソッドを実際に動かした時の挙動を確認できます。
コメントはまだありません。