public static SqlNumber Subtract(SqlNumber a, SqlNumber b, int precision) { if (SqlNumber.IsNumber(a)) { if (SqlNumber.IsNumber(b)) { var context = new MathContext(precision); var result = BigMath.Subtract(a.innerValue, b.innerValue, context); return(new SqlNumber(SqlNumber.NumericState.None, result)); } return(new SqlNumber(b.InverseState(), null)); } return(a); }