public static void Main()
var a = decimal.MaxValue - 1;
Console.WriteLine(a.Add(1m));
Console.WriteLine(a.Add(0.1m));
public static class DecimalExtensions
public static decimal Add(this decimal a, decimal b)
if (b != 0 && a == result)
throw new InvalidOperationException("Precision loss!");