protected virtual decimal SubtractRound(decimal gross, decimal limit, decimal subtract) { var subtractFrom = TaxMath.Smallest(gross, limit); var subtracted = subtractFrom - subtract; subtracted = Math.Round(subtracted, 2, MidpointRounding.AwayFromZero); return(TaxMath.PositiveOnly(subtracted)); }