// Create the parameter and set the direction Decimal defaultValue = 0.00M; IDbDataParameter param1 = this.CreateParameter("@PolicyHeaderPK", policyHeaderFK); IDbDataParameter param2 = this.CreateParameter("@SuspenseAmount", defaultValue); param2.Direction = ParameterDirection.Output; // Call the stored procedure and pass the parameter IDbCommand cmd; this.ExecSprocScalar("PoliciesGetSuspenseAmount", out cmd, param1, param2); // Retrieve the value from the command object IDbDataParameter param = (IDbDataParameter)cmd.Parameters["@SuspenseAmount"]; Decimal suspenseAmount = (Decimal)param.Value; return suspenseAmount;param.Value is definitely 70 whereas the stored procedure is returning 69.57.