using static System.Console;
using static System.Math;
public static void Main() {
for (var valor = -1M; valor <= 1M; valor += 0.05M) WriteLine("{0:N1} => {1:N1}", valor, valor.RoundMidPoint());
for (var valor = -1.0; valor <= 1.0; valor += 0.05) WriteLine("{0:N1} => {1:N1}", valor, valor.RoundMidPoint());
public static class RoundUtil {
public static Decimal RoundMidPoint(this Decimal value) => Sign(value) * Ceiling(Abs(value) * 2) / 2;
public static double RoundMidPoint(this double value) => Sign(value) * Ceiling(Abs(value) * 2) / 2;