Always check the value of a variable if it could be null!
protected void gvProd_RowDataBound(object sender, GridViewRowEventArgs e)
{
decimal total = 0,
profit = 0;
if (e.Row.RowType == DataControlRowType.DataRow)
{
object AchievedPer = DataBinder.Eval(e.Row.DataItem, "AchievedPer");
if(AchievedPer != null)
{
object obj = e.Row.FindControl("lbltotal");
if(obj != null)
{
Label lblTotal = (Label)obj;
lblTotal.Text = AchievedPer.ToString();
}
}
}
}