В случае округления до ближайшего кратного поплавка вы можете использовать это:
public static float convert(float value, float multipleOf)
{
return (float) Math.Round((decimal)value / (decimal)multipleOf, MidpointRounding.AwayFromZero) * multipleOf;
}
Затем вы можете использовать функцию следующим образом:
Console.WriteLine("Convert 10.723: " + convert(10.723f, 0.5f)); // 10.5