ダブルを最も近い5に丸める必要があります。 Math.Round関数でそれを行う方法が見つかりません。これどうやってするの?
私が欲しいもの:
70 = 70
73.5 = 75
72 = 70
75.9 = 75
69 = 70
等々..
これを行う簡単な方法はありますか?
試してください:
Math.Round(value / 5.0) * 5;
これは動作します:
5* (int)Math.Round(p / 5.0)
コードを検証できる簡単なプログラムを次に示します。 MidpointRoundingパラメーターに注意してください。これがないと、最も近い偶数に丸められます。これは、5の差(72.5の例)を意味します。
class Program
{
public static void RoundToFive()
{
Console.WriteLine(R(71));
Console.WriteLine(R(72.5)); //70 or 75? depends on midpoint rounding
Console.WriteLine(R(73.5));
Console.WriteLine(R(75));
}
public static double R(double x)
{
return Math.Round(x/5, MidpointRounding.AwayFromZero)*5;
}
static void Main(string[] args)
{
RoundToFive();
}
}