text: public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex, ValueEval arg0, ValueEval arg1){double result;try{double d0 = SingleOperandEvaluate(arg0, srcRowIndex, srcColumnIndex);double d1 = SingleOperandEvaluate(arg1, srcRowIndex, srcColumnIndex);result = Evaluate(d0, d1);if (result == 0.0){ if (!(this is SubtractEval)){return NumberEval.ZERO;}}if (Double.IsNaN(result) || Double.IsInfinity(result)){return ErrorEval.NUM_ERROR;}}catch (EvaluationException e){return e.GetErrorEval();}return new NumberEval(result);}